Partager via


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

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

  1. 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<T est un type enum. Utilisez EnumHelper.IsValidForEnumHelper() pour case activée ces exigences.
  2. Nouvelles EnumHelper.GetSelectList() méthodes qui retournent un IList<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