web-dev-qa-db-fra.com

MicrosoftAjax.js, MicrosoftMvcAjax.js et MicrosoftMvcValidation.js sont-ils obsolètes depuis ASP.NET MVC 3?

Sont MicrosoftAjax.js, MicrosoftMvcAjax.js et MicrosoftMvcValidation.js obsolète depuis ASP.NET MVC 3? Je n'ai pas pu trouver beaucoup d'informations à ce sujet sur le Web, mais d'après ce que j'ai lu, cela implique que ces fichiers ont été utilisés dans ASP.NET MVC 1-2 et ont été remplacés par jquery.validate.min.js, jquery.unobtrusive-ajax.min.js et jquery.validate.unobtrusive.min.js. Est-ce exact? Ai-je toujours besoin des fichiers Microsoft?

61
Jake Petroules

Oui tout Microsoft* les assistants sont obsolètes dans ASP.NET MVC 3. Pour moi, ils ont toujours été obsolètes mais maintenant au moins Microsoft a rendu cela officiel et les a remplacés par jQuery.

2 nouvelles fonctionnalités ont été introduites

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

Le premier est UnobtrusiveJavaScriptEnabled. Cela signifie que si vous activez cette fonctionnalité dans votre web.config (elle est activée par défaut lorsque vous créez une nouvelle application ASP.NET MVC 3), tous les Ajax.* assistants tels que Ajax.BeginForm et Ajax.ActionLink émettra des attributs HTML5 data- * sur leurs éléments DOM respectifs au lieu de mélanger javascript et le balisage. Ensuite, vous devez inclure le jquery.unobtrusive-ajax.js un script sur votre page qui analysera ces attributs et utilisera jQuery pour les AJAXifier discrètement.

Le second est ClientValidationEnabled qui est également activé par défaut. De la même manière que le javascript discret fonctionne, lorsque vous activez ce paramètre, tous les assistants qui génèrent des champs de saisie y émettront des attributs HTML5 data- *. Ensuite, vous incluez jquery.validate.js et jquery.validate.unobtrusive.js scripts pour les faire fonctionner, comme dans votre _Layout.cshtml. Ils doivent apparaître dans cet ordre, et ils doivent l'être après le chargement de 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>

Donc, dans ASp.NET MVC 3, vous pouvez oublier tout Microsoft* scripts. Supprimez-les de votre site. Supprimez ces fichiers.

121
Darin Dimitrov

Vous n'avez besoin de la fonctionnalité MicrosoftAjax que si vous utilisez les bibliothèques. Microsoft AJAX offre des fonctionnalités introuvables dans les bibliothèques JQuery fournies (bien qu'elles puissent être répliquées avec des plug-ins). Si vous n'utilisez pas Microsoft AJAX dans votre application, vous pouvez supprimer toute référence à ces scripts.

6
LewisBenge