asp.net-core - ASP.NET 5 MVC6 中的@Ajax.ActionLink

标签 asp.net-core asp.net-core-mvc

我正在使用 ASP.NET 5 RC1。

ASP.NET 5 中的等价物是什么MVC 6@Ajax.ActionLink

示例:

@Ajax.ActionLink("Show", 
             "Show", 
             null, 
             new AjaxOptions { HttpMethod = "GET", 
             InsertionMode = InsertionMode.Replace, 
             UpdateTargetId = "dialog_window_id", 
             OnComplete = "your_js_function();" })

ASP.NET 4 中使用的MVC 5 .

我得到:

The name 'Ajax' does not exist in the current context.

ASP.NET 5

更新:

我知道它不会被实现。有人可以为我提供 taghelper 代码示例替代方案吗?

最佳答案

说明

我会在这里冒险说它在那时不是一个帮助者。

这是一个组件。它不仅仅是 HTML,还有 JavaScript。将 JavaScript 绑定(bind)到组件后,您将使用哪个框架?您使用纯 JavaScript 吗?

如果此组件与纯 JavaScript(无 jQuery)绑定(bind),则需要针对每个浏览器的所有当前、以前和 future 版本进行更新/测试。

这就是为什么我认为它应该被构建为一个组件而不是构建到框架本身中。

太多的移动部分,对客户端可以并且将会改变的框架/软件有太多的依赖。

解决方案

至于解决方案,我的建议是使用 jQuery 或类似的东西。

HTML

<a class="ajaxLink" href="#" data-href="/Project" data-method="DELETE">Delete Project</a>

JavaScript

$(document).ready(function() {
    $("a.ajaxLink").on('click', function (){
        var self = this;
        $.ajax({
            type: $(this).attr('data-method'),
            url: $(this).attr('data-href')
        }).then(function() {
            // success callback
        });
    });
});

正如您所看到的,这可以很容易地成为一个简单的客户端解决方案,而不是服务器端解决方案。

我希望这能回答您的问题并解决您的问题。

关于asp.net-core - ASP.NET 5 MVC6 中的@Ajax.ActionLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134648/

相关文章:

c# - Controller 中的 ASP.NET Core MVC 子操作

javascript - 如何回发多选列表中的所有选定项目,以便将其包含在我的 View 模型中?

visual-studio - Visual Studio 2015 (ASP.NET 5) : show 'Manage Bower Packages...' context menu

asp.net-core - 在默认包装器中返回响应

azure - Azure 应用程序配置是否支持本地应用程序的某种持久性?

c# - HtmlSanitizer + 带有 DI 的 ASP.NET Core 2

c# - 带有 rc-1 更新到 ASP.Net 5 的 jwtBearer 承载 token

c# - 在另一个程序集中找到 Razor Pages

authentication - 使用 ASP.NET 5 MVC 6 Web API 进行 Cookie 身份验证

c# - 在 ASP.NET Core 中尽快获取当前 URL program.cs/startup.cs