从ASP.NET MVC 3开始,MicrosoftAjax.js
,MicrosoftMvcAjax.js
和MicrosoftMvcValidation.js
是否已过时?我无法在网上找到关于此的更多信息,但从我所看到的内容暗示这些文件在ASP.NET MVC 1-2中使用,并被jquery.validate.min.js
取代,{ {1}}和jquery.unobtrusive-ajax.min.js
。那是对的吗?我还需要Microsoft文件吗?
答案 0 :(得分:121)
是的,所有Microsoft*
助手都在ASP.NET MVC 3中已经过时了。对我而言,它们一直都已经过时但现在至少微软已经将这个官方命名为jQuery。
引入了2个新功能
<appSettings>
<add key="webpages:Version" value="1.0.0.0"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
第一个是UnobtrusiveJavaScriptEnabled
。这意味着如果您在web.config中启用此功能(在创建新的ASP.NET MVC 3应用程序时默认启用此功能),则Ajax.*
所有Ajax.BeginForm
帮助程序和{{1}将在各自的DOM元素上发出HTML5 data- *属性,而不是将javascript与标记混合。然后你应该将Ajax.ActionLink
脚本包含在你的页面中,它将解析这些属性并使用jQuery来不引人注意地对它们进行AJAX化。
第二个是jquery.unobtrusive-ajax.js
,默认情况下也会启用。同样不引人注目的javascript工作方式,当您启用此设置时,生成输入字段的所有帮助程序都将在其上发出HTML5 data- *属性。然后,您可以添加ClientValidationEnabled
和jquery.validate.js
脚本以使其正常工作,例如在_Layout.cshtml中。 它们必须按此顺序出现,并且必须在加载jquery之后:
jquery.validate.unobtrusive.js
因此,在ASp.NET MVC 3中,您可以忘记所有<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<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>
脚本。从您的网站中删除它们。删除这些文件。
答案 1 :(得分:6)
如果您使用的是库,则只需要MicrosoftAjax功能。 Microsoft AJAX确实提供了一些在提供的JQuery库中找不到的功能(尽管可以使用插件进行复制)。如果您未在应用程序中使用Microsoft AJAX,则可以删除对这些脚本的所有引用。