Ajax actionlink似乎不适合我

时间:2015-02-19 23:46:53

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

我有以下标记:

<ul class="nav nav-tabs">                    
  <li>@Ajax.ActionLink("Home", "Index", "Home", new AjaxOptions { UpdateTargetId = "updaterDiv", OnSuccess = "function() {alert('onsuccess fired'); }"}) </li>
...
<div id="updaterDiv" style=" height: 200px; width: 200px;">

</div>

HomeController中的Index动作

 public ActionResult Index()
    {
        if (Request.IsAjaxRequest())
        {
            return PartialView("_RefreshedHandler");
        }

        return View();
    }

单击链接时,AjaxOptions中的OnSuccess事件不会被触发。我究竟做错了什么? 我想要实现的目的是避免在单击链接时对整个页面进行回发和更新,而只是更新定义的部分

2 个答案:

答案 0 :(得分:2)

我的问题的答案和解决方案在这里找到:MVC5, AjaxHelper, and the Correct Scripts & Load Order,感谢Jasen指向此链接。

我已经安装了nuget压缩管理器:> Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Version 3.1.2,然后添加了:

<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

到我的项目,然后它工作。运行包管理器后,jquery.unobstrusive-ajax.jsjquery.unobstrusive-ajax.min.js自动添加到项目中(在Scripts文件夹下)

答案 1 :(得分:0)

需要将MicrosoftAjax.js和MicrosoftMvcAjax.js添加到您的视图中。 两者都可以在Nuget Package Manager中找到

Ajax.ActionLinks不再依赖于jquery.unobstrusive-ajax.js