3
整个页面

在我看来,我有:ASP.NET MVC4 Ajax.ActionLink取代

@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之前/之后插入。 感谢

+0

请在chrome或firefox中查看错误控制台。可能你的脚本没有加载 – 2013-05-03 19:00:43

+0

@Garath:谢谢!萤火虫发现这一点: 类型错误:$(...)就不是一个函数 \t 的$(document)。在( “点击”, “一个[数据阿贾克斯=真]”,函数(EVT ){ 但我没有编辑脚本(至少我不知道这一点)。我请应如何解决呢?这是jquery.unobtrusive Ajax的文件。谢谢 – 2013-05-03 19:18:24

回答

1

基础上您的评论的答案很简单,你必须升级你的jQuery。 on方法从jquery 1.7开始工作。我建议使用jQuery 1.7.2,因为mvc脚本有时会出现更高版本的问题

+0

非常感谢,现在它的工作原理。有没有机会使用jquery.unobtrusive-ajax和更新版本的jQuery? – 2013-05-04 06:22:03

+0

你可以看看这里http://stackoverflow.com/questions/14391867/unobtrusive-ajax-stopped-working-after-update-jquery-to -1-9-0。 – 2013-05-04 06:44:00

+0

有一个jquery验证的更新https://nuget.org/packages/jQuery.Validation/1.11.0 – 2013-05-04 07:50:37