Nouveautés d’ASP.NET MVC 5.1
par Microsoft
Cette rubrique décrit les nouveautés de ASP.NET Web MVC 5.1.
Configuration logicielle
- Visual Studio 2012 : Téléchargez ASP.NET et Web Tools 2013.1 pour Visual Studio 2012.
- Visual Studio 2013 : Télécharger Visual Studio 2013 Update 1. Cette mise à jour est nécessaire pour modifier ASP.NET vues Razor MVC 5.1.
Télécharger
Les fonctionnalités d’exécution sont publiées sous forme de packages NuGet sur la galerie NuGet. Tous les packages d’exécution suivent la spécification du contrôle de version sémantique . Le dernier ASP.NET package MVC 5.1 RTM a la version suivante : « 5.1.2 ». Vous pouvez installer ou mettre à jour ces packages via NuGet. La version inclut également les packages localisés correspondants sur NuGet.
Vous pouvez installer ou mettre à jour les packages NuGet publiés à l’aide de la console du Gestionnaire de package NuGet :
Install-Package Microsoft.AspNet.Mvc -Version 5.1.2
Documentation
Des tutoriels et d’autres informations sur ASP.NET MVC 5.1 RTM sont disponibles sur le site web ASP.NET ( https://www.asp.net).
Nouvelles fonctionnalités de ASP.NET MVC 5.1
Améliorations du routage des attributs
Le routage d’attributs prend désormais en charge les contraintes, ce qui permet le contrôle de version et la sélection d’itinéraire en fonction de l’en-tête. De nombreux aspects des itinéraires d’attributs sont désormais personnalisables via l’interface et RouteFactoryAttribute
la IDirectRouteFactory
classe. Le préfixe d’itinéraire est désormais extensible via l’interface et RoutePrefixAttribute
la IRoutePrefix
classe .
Prise en charge de l’énumération dans les affichages
- Nouvelles
@Html.EnumDropDownListFor()
méthodes d’assistance. Ceux-ci doivent être utilisés comme la plupart des helpers HTML avec la mise en garde que l’expression doit évaluer à un type enum ou un T> nullable< oùT
est un type enum. UtilisezEnumHelper.IsValidForEnumHelper()
pour case activée ces exigences. - Nouvelles
EnumHelper.GetSelectList()
méthodes qui retournent unIList<SelectListItem>
. Cela est utile lorsque vous devez manipuler une liste de sélection avant d’appeler, par exemple ,@Html.DropDownListFor()
ou lorsque vous souhaitez afficher les noms qui s’affichent@Html.EnumDropDownListFor()
.
Le code suivant montre ces API.
@if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata))
{
@Html.EnumDropDownListFor(model => model, htmlAttributes: new { @class = "form-control" })
}
@if (EnumHelper.IsValidForEnumHelper(ViewData.ModelMetadata))
{
foreach (SelectListItem item in EnumHelper.GetSelectList(ViewData.ModelMetadata,
(Enum)Model)) { … }
}
Vous pouvez voir un exemple complet ici.
Prise en charge du démarrage pour les modèles d’éditeur
Nous autorisons maintenant le passage d’attributs HTML dans EditorFor en tant qu’objet anonyme.
Par exemple :
@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })
Validation discrète pour MinLengthAttribute et MaxLengthAttribute
La validation côté client pour les types de chaîne et de tableau est désormais prise en charge pour les propriétés décorées avec les attributs MinLength et MaxLength .
Prise en charge du contexte « this » dans Unobtrusive Ajax
Les fonctions de rappel (OnBegin, OnComplete, OnFailure, OnSuccess
) sont désormais en mesure de localiser l’élément appelant via le this
contexte. Par exemple :
@Ajax.ActionLink("Click me", "AjaxAction", new AjaxOptions { UpdateTargetId = "foo", OnBegin = "OnClick" })
<script>
function OnClick(jqXHR) {
if ($(this).hasClass("foo")) {
jqXHR.setRequestHeader("custom-header", "value");
}
}
</script>
Problèmes connus et changements cassants
Routage des attributs
Les ambiguïtés dans les correspondances de routage d’attributs signalent désormais une erreur au lieu de choisir la première correspondance.
Il est interdit aux itinéraires d’attributs d’utiliser le {controller}
paramètre et d’utiliser le {action}
paramètre sur les itinéraires placés sur des actions. L’utilisation de ces paramètres entraînerait très probablement des ambiguïtés.
Générer une génération automatique de l’API MVC/Web dans un projet avec des packages 5.1 entraîne la création de packages 5.0 pour ceux qui n’existent pas déjà dans le projet
La mise à jour des packages NuGet pour ASP.NET MVC 5.1 RTM ne met pas à jour les outils Visual Studio tels que ASP.NET la génération automatique ou le modèle de projet d’application web ASP.NET. Ils utilisent la version précédente des packages d’exécution ASP.NET (5.0.0.0). Par conséquent, la génération automatique de ASP.NET installera la version précédente (5.0.0.0) des packages requis, s’ils ne sont pas déjà disponibles dans vos projets. Toutefois, la ASP.NET la génération automatique dans Visual Studio 2013 RTM ou Update 1 ne remplace pas les derniers packages de vos projets. Si vous utilisez ASP.NET structure après la mise à jour des packages de vos projets vers l’API Web 2.1 ou ASP.NET MVC 5.1, assurez-vous que les versions de l’API web et ASP.NET MVC sont cohérentes.
Mise en surbrillance de la syntaxe pour les vues Razor dans Visual Studio 2013
Si vous effectuez une mise à jour vers ASP.NET MVC 5.1 RTM sans mettre à jour Visual Studio 2013, vous ne bénéficierez pas de la prise en charge de l’éditeur Visual Studio pour la mise en surbrillance de la syntaxe lors de la modification des vues Razor. Vous devez mettre à jour Visual Studio 2013 pour obtenir ce support.
Renommages de type
Certains des types utilisés pour l’extensibilité du routage des attributs sont renommés en 5.1 RTM.
Ancien nom de type (5.1 RC) | Nom du nouveau type (5.1 RTM) |
---|---|
IDirectRouteProvider | IDirectRouteFactory |
RouteProviderAttribute | RouteFactoryAttribute |
DirectRouteProviderContext | DirectRouteFactoryContext |