2012-01-09 81 views
60

MicrosoftAjax.js,MicrosoftMvcAjax.jsMicrosoftMvcValidation.js從ASP.NET MVC 3過時了嗎?我一直沒能在網上找到這方面的信息,但從我讀過的內容來看,這意味着這些文件在ASP.NET MVC 1-2中被使用,並被jquery.validate.min.js,jquery.unobtrusive-ajax.min.jsjquery.validate.unobtrusive.min.js取代。那是對的嗎?我還需要Microsoft文件嗎?自ASP.NET MVC 3起,MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js是否被廢棄?

回答

118

是的,所有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.BeginFormAjax.ActionLink)將在其各自的HTML5數據屬性DOM元素,而不是將JavaScript與標記混合。然後,您應該將jquery.unobtrusive-ajax.js腳本包含到您的頁面中,該頁面將解析這些屬性並使用jQuery不顯眼地對它們進行AJAX化。

第二個是ClientValidationEnabled它也默認啓用。同樣,不引人注意的javascript工作,當你啓用這個設置時,所有生成輸入字段的助手都會發出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*腳本。將它們從您的網站中刪除。刪除這些文件。

+0

謝謝darin。 **注意**:它似乎最新版本'jquery-1.10.2.min.js'不起作用,[使用](http://stackoverflow.com/a/30213504/2218697)'jquery-1.7.1 .min.js'爲我工作。 – stom 2015-05-13 11:33:08

6

如果您使用庫,則只需要MicrosoftAjax功能。 Microsoft AJAX確實提供了在提供的JQuery庫中找不到的一些功能(儘管可以使用插件進行復制)。如果您未在應用程序中使用Microsoft AJAX,則可以刪除對這些腳本的所有引用。

+0

但是,實際使用它們的是什麼? – 2012-01-09 00:30:16

+0

這是一個替代JavaScript庫 - 類似於JQuery UI,詳細信息在這裏:http://www.asp.net/ajaxlibrary/act_tutorials.ashx。我相信微軟已經慢慢地從貢獻到MS AJAX,而不是貢獻給JQuery(如模板庫)。 – LewisBenge 2012-01-09 00:38:28

+0

就是這樣 - 我知道我是否在使用它? – 2012-01-09 01:05:00