2012-01-09 8 views
60

Are MicrosoftAjax.js, MicrosoftMvcAjax.js e MicrosoftMvcValidation.js obsoleto come ASP.NET MVC 3? Non sono stato in grado di trovare molte informazioni su questo sul web, ma da quello che ho letto implica che questi file sono stati utilizzati in ASP.NET MVC 1-2 e sono stati sostituiti da jquery.validate.min.js, jquery.unobtrusive-ajax.min.js e jquery.validate.unobtrusive.min.js. È corretto? Ho ancora bisogno dei file Microsoft?MicrosoftAjax.js, MicrosoftMvcAjax.js e MicrosoftMvcValidation.js sono obsoleti a partire da ASP.NET MVC 3?

risposta

118

Sì, tutti gli helper Microsoft* sono obsoleti in ASP.NET MVC 3. Per me sono sempre stati obsoleti ma ora almeno Microsoft ha reso questo funzionario e li ha sostituiti con jQuery.

2 nuove funzionalità sono state introdotte

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

Il primo è UnobtrusiveJavaScriptEnabled. Ciò significa che se abiliti questa funzionalità nel tuo web.config (abilitato di default quando crei una nuova applicazione ASP.NET MVC 3), tutti gli helper Ajax.* come Ajax.BeginForm e Ajax.ActionLink emetteranno attributi HTML5 data- * sui rispettivi Elementi DOM invece di mixare javascript con markup. Quindi dovresti includere lo script jquery.unobtrusive-ajax.js nella tua pagina che analizzerà quegli attributi e userà jQuery in modo discreto AJAXify.

Il secondo è ClientValidationEnabled che è anche abilitato per impostazione predefinita. Allo stesso modo, il javascript non invadente funziona, quando attivi questa impostazione tutti gli helper che generano campi di input emetteranno attributi HTML5 data- *. Quindi includi gli script jquery.validate.js e jquery.validate.unobtrusive.js per farli funzionare, come nel tuo _Layout.cshtml. devono apparire in questo ordine, e devono essere dopo jQuery è caricato:

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

Quindi, in ASp.NET MVC 3 si può dimenticare tutti Microsoft* script. Rimuovili dal tuo sito. Elimina quei file.

+0

Grazie, caro. ** Nota **: sembra l'ultima versione 'jquery-1.10.2.min.js' non funziona, [utilizzando] (http://stackoverflow.com/a/30213504/2218697)' jquery-1.7.1 .min.js' ha funzionato per me. – stom

6

È necessaria la funzionalità MicrosoftAjax solo se si utilizzano le librerie. Microsoft AJAX offre alcune funzionalità non disponibili nelle librerie JQuery fornite (anche se potrebbero essere replicate con i plug-in). Se non si utilizza Microsoft AJAX all'interno dell'applicazione, è possibile eliminare tutti i riferimenti a questi script.

+0

Che cosa effettivamente li usa, però? –

+0

È una libreria JavaScript alternativa - simile all'interfaccia utente di JQuery, i dettagli sono disponibili qui: http://www.asp.net/ajaxlibrary/act_tutorials.ashx. Credo che Microsoft si sia lentamente spostata dal contribuire a MS AJAX e invece a contribuire invece a JQuery (come la libreria di template). – LewisBenge

+0

Mettere in questo modo - potrei sapere se lo stavo usando? –