从ASP.NET MVC 3开始,MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js是否已过时?

时间:2012-01-09 00:21:27

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

从ASP.NET MVC 3开始,MicrosoftAjax.jsMicrosoftMvcAjax.jsMicrosoftMvcValidation.js是否已过时?我无法在网上找到关于此的更多信息,但从我所看到的内容暗示这些文件在ASP.NET MVC 1-2中使用,并被jquery.validate.min.js取代,{ {1}}和jquery.unobtrusive-ajax.min.js。那是对的吗?我还需要Microsoft文件吗?

2 个答案:

答案 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- *属性。然后,您可以添加ClientValidationEnabledjquery.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,则可以删除对这些脚本的所有引用。