这应该只替换 UpdateTarget,但事实并非如此,它替换了整个页面,我不明白为什么。返回正确的部分视图,但不是替换目标 id,而是替换整个页面。
<div id="magHeader">
<p>this is a test.</p>
@Ajax.ActionLink("Edit", "GetEditor", "Home", new AjaxOptions(){ UpdateTargetId = "magHeader", InsertionMode = InsertionMode.Replace})
</div>
在运行时,链接如下所示:
<a href="/Home/GetEditor" data-ajax-update="#magHeader" data-ajax-mode="replace" data-ajax="true">Edit</a>
我做错了什么吗?过去曾成功完成此操作,没有出现任何问题。
Edit此问题的根本原因是,在 VS 2012 中,您只需添加对 JQueryVal 包的引用即可完成此操作。但是,在 2013 年,BundleConfig.cs 发生了更改,因此 JQueryVal 包不再包含 JQuery.Unobtrusive。因此,简单的解决方法是将其添加回捆绑包中:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
然后一切都会按预期进行。
检查是否正在加载@Scripts.Render("~/bundles/jqueryval")
是否进入您的页面某处。这可能是因为不显眼的 javascript 文件没有被加载。检查这个video https://www.youtube.com/watch?v=5xYjiFjrji8
Edit:
请检查您的packages.config 文件中是否安装了软件包。
<package id="Microsoft.jQuery.Unobtrusive.Ajax" version="3.1.1" targetFramework="net451" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.0.0" targetFramework="net451" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)