微软的Ajax.js、MicrosoftMvcAjax.js和MicrosoftMvcValidation.js在ASP.NET MVC 3中是否已经过时?

62
ASP.NET MVC 3已经过时了吗?MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js文件是否已经过时?我在网上没有找到很多信息,但是从我阅读的内容来看,这些文件是用于ASP.NET MVC 1-2的,并被jquery.validate.min.js,jquery.unobtrusive-ajax.min.js和jquery.validate.unobtrusive.min.js所取代。这是正确的吗?我还需要使用Microsoft的文件吗?
2个回答

121

是的,在ASP.NET MVC 3中,所有Microsoft*助手都已过时。对我来说,它们一直就已经过时了,但现在微软已经正式宣布并用jQuery替代了它们。

还引入了两个新功能。

<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.BeginFormAjax.ActionLink都将在它们各自的DOM元素上发出HTML5 data-*属性,而不是将javascript与标记混合使用。然后您应该在页面中包含jquery.unobtrusive-ajax.js脚本,它将解析那些属性并使用jQuery来做无障碍AJAX。

第二个是ClientValidationEnabled,也是默认启用的。与无侵入式javascript的工作方式相同,当您启用此设置时,生成输入字段的所有助手都会在其上发出HTML5 data-*属性。然后您需要在您的_Layout.cshtml等页面中包含jquery.validate.jsjquery.validate.unobtrusive.js脚本来使它们工作。 它们必须按照这个顺序出现,并且必须在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* 脚本。从您的站点中删除它们。删除这些文件。


谢谢darin。注意:最新版本jquery-1.10.2.min.js似乎无法正常工作,我使用的是jquery-1.7.1.min.js,可以参考这个链接:https://dev59.com/kW445IYBdhLWcg3wQX-G#30213504。 - Shaiju T

6

只有在使用库时才需要MicrosoftAjax功能。 Microsoft AJAX提供了一些在提供的JQuery库中找不到的功能(尽管可以使用插件复制)。 如果您的应用程序中没有使用Microsoft AJAX,则可以删除对这些脚本的所有引用。


1
但是,它们实际上是用来做什么的呢? - Jake Petroules
这是一个备用的JavaScript库 - 类似于JQuery UI,详情请见:http://www.asp.net/ajaxlibrary/act_tutorials.ashx。我相信微软已经逐渐不再为MS AJAX做出贡献,而是转而为JQuery做出贡献(例如模板库)。 - LewisBenge
1
这样说吧 - 如果我在使用它,我会知道吗? - Jake Petroules
是的 - 您需要调用特定于该框架的方法,并需要在HTML中引用JS。 - LewisBenge
在这里,http://channel9.msdn.com/Blogs/matthijs/ASPNET-AJAX-40-by-Fritz-Onion,宣布微软正在转向jQuery扩展。 - Roman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接