从ASP.NET MVC 3开始,MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js是否被废弃?

从ASP.NET MVC 3开始, MicrosoftAjax.jsMicrosoftMvcAjax.jsMicrosoftMvcValidation.js废弃? 我一直没有能够在网上find这方面的信息,但从我读过的内容来看,这意味着这些文件被用在ASP.NET MVC 1-2中,并被jquery.validate.min.jsjquery.unobtrusive-ajax.min.jsjquery.validate.unobtrusive.min.js 。 那是对的吗? 我还需要Microsoft文件吗?

是的,所有的Microsoft* helper在ASP.NET MVC 3中都是过时的。对我来说,它们一直是过时的,但现在至less微软已经做出了这个官方的声明,并用jQueryreplace了它们。

已经引入了2个新的function

 <appSettings> <add key="webpages:Version" value="1.0.0.0"/> <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings> 

首先是UnobtrusiveJavaScriptEnabled 。 这意味着如果你在你的web.config中启用了这个function(当你创build一个新的ASP.NET MVC 3应用程序时默认启用), Ajax.BeginFormAjax.ActionLink等所有的Ajax.ActionLink都会发送HTML5数据 – *属性在各自的DOM元素,而不是混合JavaScript与标记。 然后,你应该包括jquery.unobtrusive-ajax.js脚本到你的页面,这将parsing这些属性,并使用jQuery悄悄地AJAX化他们。

第二个是ClientValidationEnabled ,它也是默认启用的。 不显眼的JavaScript的工作方式相同,当您启用此设置时,所有生成input字段的助手将在其上发出HTML5数据属性。 然后你包含jquery.validate.jsjquery.validate.unobtrusive.js脚本来使它们工作,比如在你的_Layout.cshtml中。 他们必须按照这个顺序出现,而且他们必须在jquery加载之后:

 <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> 

所以在ASp.NET MVC 3中,您可以忘记所有Microsoft*脚本。 从您的网站中删除它们。 删除这些文件。

如果您正在使用库,则只需要MicrosoftAjaxfunction。 Microsoft AJAX确实提供了在提供的JQuery库中找不到的一些function(尽pipe可以用插件复制)。 如果您在应用程序中未使用Microsoft AJAX,则可以删除对这些脚本的所有引用。