如何使用Ajax.ActionLink?

时间:2011-04-07 19:13:03

标签: asp.net-mvc asp.net-mvc-3

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

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

4 个答案:

答案 0 :(得分:60)

当然,之前曾问过similar question。为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可能会根据您的需要而有所不同。最后将其显示在模态窗口上。建议jQuery UI dialog

答案 1 :(得分:41)

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

Install-Package Microsoft.jQuery.Unobtrusive.Ajax

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

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

答案 2 :(得分:7)

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

答案 3 :(得分:7)

对我来说,这是通过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>