ASP.NET MVC4 Ajax.ActionLink替换整个页面

时间:2013-05-03 18:51:38

标签: ajax asp.net-mvc asp.net-mvc-4 unobtrusive-javascript unobtrusive-ajax

在我看来,我有:

 @section Header {
     @Scripts.Render("~/bundles/jqueryval")
 }

<div>
    <div>@Ajax.ActionLink("Test", "CurrentTime", new AjaxOptions { UpdateTargetId = "some_div", InsertionMode = InsertionMode.InsertAfter })</div>
</div>

<div id="some_div">

</div>

在结果页面的标题中,我看到引用了这些脚本:

<script src="/Scripts/jquery-1.6.4.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

链接看起来像这样:

<div><a data-ajax="true" data-ajax-mode="after" data-ajax-update="#some_div" href="/Tournament/CurrentTime">Test</a></div>

在控制器中:

public string CurrentTime()
{
    return DateTime.Now.ToLongTimeString();
}

在我的web.config中(在应用程序的根目录中):

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

我的问题是:每当我点击链接时,结果(当前时间)总是替换整个页面 - 它不会插入some_div之前/之后/之前。 感谢

1 个答案:

答案 0 :(得分:1)

根据您的评论,答案很简单,您必须升级您的jQuery。 on方法正在使用jquery 1.7。我建议使用jquery 1.7.2,因为mvc脚本有时会遇到更高版本的问题