如何使用Ajax.ActionLink?

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

Ajax.ActionLink可以用来调用一个动作,获得一个局部视图,打开一个模式窗口并将其中的内容?

当然,以前也有类似的问题 。 为ajax请求设置控制器:

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

根据需要设置操作链接:

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

请注意,我正在使用Razor视图引擎,而且您的AjaxOptions可能会根据您的需要而有所不同。 最后在模式窗口中显示它。 build议使用jQuery UI对话框 。

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

 Install-Package Microsoft.jQuery.Unobtrusive.Ajax 

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

 @Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js") 

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

这是Ajax.ActionLink的MSDN文档

这里有一个MSDNpost,里面有一些关于Ajax.ActionLink的例子

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

  Search and install via NuGet Packages: Microsoft.jQuery.Unobtrusive.Ajax 

比在视图中添加引用jQuery和AJAX Unobtrusive:

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