ASP.NET MVC 3和jquery.unobtrusive-ajax.min.js

时间:2012-07-04 10:01:51

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

我想使用Ajax.ActionLink Html助手,因此我需要jquery.unobtrusive-ajax.min.js库,但IE总是显示此错误:

  

Microsoft JScript运行时错误:无法设置属性'unobtrusive'的值:object为null或undefined

我已经读过解决方案是使用jquery.validate.min.js和jquery.validate.unobtrusive.min.js但是我无法识别服务器端的ajax调用。

2 个答案:

答案 0 :(得分:20)

  

我已经读过解决方案是使用jquery.validate.min.js和   jquery.validate.unobtrusive.min.js

不,这两个脚本与jquery.unobtrusive-ajax.min.js无关。它们用于不显眼的验证。对于Ajax。*助手,您只需要jQueryjquery.unobtrusive-ajax.min.js(包含在 THAT 顺序中)。

因此,对于不引人注目的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>

答案 1 :(得分:2)

这是一篇很老的帖子,但是如果有人需要最新的不引人注目的ajax,可以在这里找到:

http://nuget.org/packages/Microsoft.jQuery.Unobtrusive.Ajax/3.0.0-beta2

还有其他稳定版本适用于最新的jquery lib。