如何使用Ajax.ActionLink?

Sha*_*ean 49 asp.net-mvc asp.net-mvc-3

首先,Ajax.*asp.net mvc中方法的文档在哪里?

Ajax.ActionLink用于调用动作,获取局部视图,打开模态窗口并将内容放入其中?

fel*_*xmm 60

当然,之前有一个非常相似的问题.为ajax请求设置控制器:

public ActionResult Show()
{
    if (Request.IsAjaxRequest()) 
    {
        return PartialView("Your_partial_view", new Model());
    }
    else 
    {
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

根据需要设置操作链接:

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

请注意,我正在使用Razor视图引擎,并且您的AjaxOptions可能会根据您的需要而有所不同.最后将其显示在模态窗口上.建议使用jQuery UI对话框.


kom*_*sky 41

@ Ajax.ActionLink需要jQuery AJAX Unobtrusive库.你可以通过nuget下载它:

Install-Package Microsoft.jQuery.Unobtrusive.Ajax
Run Code Online (Sandbox Code Playgroud)

然后将此代码添加到您的视图:

@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
Run Code Online (Sandbox Code Playgroud)


小智 8

对我来说,这是通过NuGet下载AJAX Unobtrusive库之后的工作:

 Search and install via NuGet Packages:   Microsoft.jQuery.Unobtrusive.Ajax
Run Code Online (Sandbox Code Playgroud)

在视图中添加对jquery和AJAX Unobtrusive的引用:

@Scripts.Render("~/bundles/jquery")
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"> </script>
Run Code Online (Sandbox Code Playgroud)


Muh*_*hid 7

Ajax.ActionLink只向服务器发送ajax请求.前面发生的事情实际上取决于返回的数据类型以及客户端脚本对其执行的操作.您可以发送ajax调用或json,xml等的部分视图.然而,Ajax.ActionLink具有不同的回调和参数,允许您在不同的事件上编写js代码.您可以在发送请求之前执行某些操作或onComplete.同样,你有一个onSuccess回调.这是您放置JS代码以处理服务器返回的结果的地方.你可以简单地把它放回到UpdateTargetID中,或者你可以使用jQuery或其他一些JS库来做这个结果的花哨的东西.