我想使用 Ajax.ActionLink Html 帮助程序,因此我需要 jquery.unobtrusive-ajax.min.js 库,但 IE 总是显示此错误:
Microsoft JScript 运行时错误:无法设置属性“unobtrusive”的值:对象为空或未定义
我已经读到解决方案是使用 jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js 但后来我无法识别服务器端的 ajax 调用。
我想使用 Ajax.ActionLink Html 帮助程序,因此我需要 jquery.unobtrusive-ajax.min.js 库,但 IE 总是显示此错误:
Microsoft JScript 运行时错误:无法设置属性“unobtrusive”的值:对象为空或未定义
我已经读到解决方案是使用 jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js 但后来我无法识别服务器端的 ajax 调用。
我读过解决方案是使用 jquery.validate.min.js 和 jquery.validate.unobtrusive.min.js
不,那 2 个脚本与jquery.unobtrusive-ajax.min.js
. 它们用于不显眼的验证。对于 Ajax.* 助手,您只需要jQuery
和jquery.unobtrusive-ajax.min.js
(包含在那个顺序中)。
因此,对于不显眼的 AJAX,您需要:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
如果您想使用不显眼的验证,您还可以在之后包含 2 个脚本(按此顺序):
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
您应该确保的另一件非常重要的事情是您已经Microsoft*.js
从项目中完全删除了任何脚本痕迹。这些脚本已过时,默认情况下不再使用从 ASP.NET MVC 3 开始的脚本。还要确保您在 web.config 中启用了不显眼的 AJAX,否则系统将回退到旧版 Microsoft ajax 脚本:
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
这是一篇旧文章,但如果有人需要关于不显眼的 ajax 的最新信息,可以在这里找到:
http://nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/3.0.0-beta2
还有其他适用于最新 jquery 库的稳定版本。