Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
(inclut la mise à jour des outils d’avril 2011)
ASP.NET MVC 3 est une infrastructure permettant de créer des applications web évolutives basées sur des normes à l’aide de modèles de conception bien établis et de la puissance de ASP.NET et du .NET Framework.
Il s’installe côte à côte avec ASP.NET MVC 2, alors commencez à l’utiliser dès aujourd’hui !
Téléchargez le programme d’installation ici
Nouveautés de ASP.NET MVC 3
Installation et aide
ASP.NET MVC 3 s’appuie sur ASP.NET MVC 1 et 2, ajoutant d’excellentes fonctionnalités qui simplifient votre code et permettent une extensibilité plus approfondie. Cette rubrique fournit une vue d’ensemble de la plupart des nouvelles fonctionnalités incluses dans cette version, organisées dans les sections suivantes :
Le nouveau système Scaffolding facilite la prise en charge et l’utilisation productive si vous débutez entièrement avec l’infrastructure, ainsi que l’automatisation des tâches de développement courantes si vous avez de l’expérience et que vous savez déjà ce que vous faites.
Cela est pris en charge par le nouveau package de génération de modèles NuGet appelé MvcScaffolding. Le terme « Génération de modèles » est utilisé par de nombreuses technologies logicielles pour signifier « générer rapidement un plan de base de votre logiciel que vous pouvez ensuite modifier et personnaliser ». Le package de structure que nous créons pour ASP.NET MVC est très utile dans plusieurs scénarios :
Les autres fonctionnalités de la structure MvcS sont les suivantes :
La mise à jour des outils MVC 3 ASP.NET inclut une prise en charge exceptionnelle de Visual Studio pour ce système de génération de modèles, par exemple :
Pour plus d’informations sur la génération de modèles dans ASP.NET MVC 3, consultez les ressources suivantes :
La série de billets de Steve Sanderson, y compris :
Le billet de Scott Hanselman de sa session PDC 2010 Création d’un blog avec Microsoft « Unnamed Package of Web Love »
La boîte de dialogue Nouveau projet inclut une case à cocher pour activer les versions HTML 5 des modèles de projet. Ces modèles tirent parti de Modernr 1.7 pour fournir une prise en charge de compatibilité pour HTML 5 et CSS 3 dans les navigateurs de niveau inférieur.
ASP.NET MVC 3 est fourni avec un nouveau moteur d’affichage nommé Razor qui offre les avantages suivants :
Voici quelques-unes des nouvelles fonctionnalités razor :
@model
syntaxe pour spécifier le type passé à la vue.@* *@
syntaxe de commentaire.layoutpage
) une fois pour l’ensemble d’un site.Html.Raw
permettant d’afficher du texte sans l’encodage HTML.Razor inclut également de nouvelles assistances HTML, telles que les suivantes :
Chart
. Affiche un graphique, offrant les mêmes fonctionnalités que le contrôle de graphique dans ASP.NET 4.WebGrid
. Affiche une grille de données, avec les fonctionnalités de pagination et de tri.Crypto
. Utilise des algorithmes de hachage pour créer des mots de passe correctement salés et hachés.WebImage
. Affiche une image.WebMail
. Envoie un e-mail.Pour plus d’informations sur Razor, consultez les ressources suivantes :
La boîte de dialogue Ajouter une vue dans ASP.NET MVC 3 vous permet de choisir le moteur d’affichage que vous souhaitez utiliser, et la boîte de dialogue Nouveau projet vous permet de spécifier le moteur d’affichage par défaut pour un projet. Vous pouvez choisir le moteur d’affichage Web Forms (ASPX), Razor ou un moteur d’affichage open source tel que Spark, NHaml ou NDjango.
Parfois, vous souhaitez effectuer une logique avant l’exécution d’une méthode d’action ou après l’exécution d’une méthode d’action. Pour cela, ASP.NET filtres d’action fournis par MVC 2. Les filtres d’action sont des attributs personnalisés qui fournissent un moyen déclaratif d’ajouter un comportement de pré-action et de post-action à des méthodes d’action de contrôleur spécifiques. Toutefois, dans certains cas, vous pouvez spécifier un comportement de pré-action ou de post-action qui s’applique à toutes les méthodes d’action. MVC 3 vous permet de spécifier des filtres globaux en les ajoutant à la GlobalFilters
collection. Pour plus d’informations sur les filtres d’action globaux, consultez les ressources suivantes :
Les contrôleurs MVC 2 prennent en charge une ViewData
propriété qui vous permet de transmettre des données à un modèle d’affichage à l’aide d’une API de dictionnaire à limite tardive. Dans MVC 3, vous pouvez également utiliser une syntaxe un peu plus simple avec la ViewBag
propriété pour accomplir le même objectif. Par exemple, au lieu d’écrire ViewData["Message"]="text"
, vous pouvez écrire ViewBag.Message="text"
. Vous n’avez pas besoin de définir des classes fortement typées pour utiliser la ViewBag
propriété . Étant donné qu’il s’agit d’une propriété dynamique, vous pouvez simplement obtenir ou définir des propriétés et les résoudre dynamiquement au moment de l’exécution. En interne, ViewBag
les propriétés sont stockées sous forme de paires nom/valeur dans le ViewData
dictionnaire. (Remarque : dans la plupart des versions préliminaires de MVC 3, la ViewBag
propriété a été nommée propriété ViewModel
.)
Les types suivants ActionResult
et les méthodes d’assistance correspondantes sont nouveaux ou améliorés dans MVC 3 :
RedirectPermanent
, RedirectToRoutePermanent
et RedirectToActionPermanent
. Ces méthodes retournent une instance de RedirectResult
avec la Permanent
propriété définie sur true
.Par défaut, Ajax et les assistances de validation dans MVC 3 utilisent une approche JavaScript discrète. JavaScript discret évite d’injecter du Code JavaScript inline dans le code HTML. Votre code HTML est ainsi plus petit et moins encombré, et facilite l’échange ou la personnalisation des bibliothèques JavaScript. Les assistances de validation dans MVC 3 utilisent également le jQueryValidate
plug-in par défaut. Si vous souhaitez un comportement MVC 2, vous pouvez désactiver JavaScript discret à l’aide d’un paramètre de fichierweb.config . Pour plus d’informations sur les améliorations apportées à JavaScript et Ajax, consultez les ressources suivantes :
Dans les versions antérieures de MVC, vous devez appeler explicitement la Html.EnableClientValidation
méthode à partir d’une vue afin d’activer la validation côté client. Dans MVC 3, cela n’est plus obligatoire, car la validation côté client est activée par défaut. (Vous pouvez le désactiver à l’aide d’un paramètre dans le fichier web.config .)
Pour que la validation côté client fonctionne, vous devez toujours référencer les bibliothèques jQuery et jQuery Validation appropriées dans votre site. Vous pouvez héberger ces bibliothèques sur votre propre serveur ou les référencer à partir d’un réseau de distribution de contenu (CDN) comme les CDN de Microsoft ou Google.
ASP.NET MVC 3 prend en charge la nouvelle classe RemoteAttribute qui vous permet de tirer parti de la prise en charge du validateur à distance du plug-in jQuery Validation. Cela permet à la bibliothèque de validation côté client d’appeler automatiquement une méthode personnalisée que vous définissez sur le serveur afin d’effectuer une logique de validation qui ne peut être effectuée que côté serveur.
Dans l’exemple suivant, l’attribut spécifie que la Remote
validation du client appelle une action nommée UserNameAvailable
sur la UsersController
classe afin de valider le UserName
champ.
public class User
{
[Remote("UserNameAvailable", "Users")]
public string UserName { get; set; }
}
L’exemple suivant montre le contrôleur correspondant.
public class UsersController
{
public bool UserNameAvailable(string username)
{
if(MyRepository.UserNameExists(username))
{
return "false";
}
return "true";
}
}
Pour plus d’informations sur l’utilisation de l’attribut Remote
, consultez Guide pratique pour implémenter la validation à distance dans ASP.NET MVC dans la bibliothèque MSDN.
ASP.NET MVC 3 inclut la prise en charge de la liaison JSON intégrée qui permet aux méthodes d’action de recevoir des données encodées JSON et de les lier aux paramètres d’action-méthode. Cette fonctionnalité est utile dans les scénarios impliquant des modèles client et une liaison de données. (Les modèles clients vous permettent de mettre en forme et d’afficher un seul élément de données ou un ensemble d’éléments de données à l’aide de modèles qui s’exécutent sur le client.) MVC 3 vous permet de connecter facilement des modèles clients avec des méthodes d’action sur le serveur qui envoie et reçoit des données JSON. Pour plus d’informations sur la prise en charge de la liaison JSON, consultez la section Améliorations JavaScript et AJAX du billet de blog MVC 3 Preview de Scott Guthrie.
ASP.NET MVC 3 prend en charge DataAnnotations
les attributs de métadonnées tels que DisplayAttribute
.
La ValidationAttribute
classe a été améliorée dans .NET Framework 4 pour prendre en charge une nouvelle IsValid
surcharge qui fournit plus d’informations sur le contexte de validation actuel, comme l’objet en cours de validation. Cela permet des scénarios plus riches dans lesquels vous pouvez valider la valeur actuelle en fonction d’une autre propriété du modèle. Par exemple, le nouvel CompareAttribute
attribut vous permet de comparer les valeurs de deux propriétés d’un modèle. Dans l’exemple suivant, la ComparePassword
propriété doit correspondre au Password
champ pour être valide.
public class User
{
[Required]
public string Password { get; set; }
[Required, Compare("Password")]
public string ComparePassword { get; set; }
}
L’interface IValidatableObject vous permet d’effectuer une validation au niveau du modèle et vous permet de fournir des messages d’erreur de validation spécifiques à l’état du modèle global ou entre deux propriétés au sein du modèle. MVC 3 récupère désormais les erreurs de l’interface lors de la IValidatableObject
liaison de modèle, et signale ou met automatiquement en surbrillance les champs affectés dans une vue à l’aide des assistances de formulaire HTML intégrées.
L’interface IClientValidatable permet à ASP.NET MVC de découvrir au moment de l’exécution si un validateur prend en charge la validation du client. Cette interface a été conçue pour qu’elle puisse être intégrée à divers frameworks de validation.
Pour plus d’informations sur les interfaces de validation, consultez la section Améliorations de la validation des modèles du billet de blog MVC 3 Preview de Scott Guthrie. (Notez toutefois que la référence à « IValidateObject » dans le blog doit être « IValidatableObject ».)
ASP.NET MVC 3 offre une meilleure prise en charge de l’application de l’injection de dépendances (DI) et de l’intégration avec des conteneurs d’injection de dépendances ou d’inversion de contrôle (IOC). La prise en charge de l’IE a été ajoutée dans les domaines suivants :
MVC 3 prend en charge la bibliothèque Common Service Locator et n’importe quel conteneur di qui prend en charge l’interface de IServiceLocator
cette bibliothèque. Il prend également en charge une nouvelle IDependencyResolver
interface qui facilite l’intégration des infrastructures d’intégration d’intégration.
Pour plus d’informations sur l’AUTHENTIFICATION dans MVC 3, consultez les ressources suivantes :
ASP.NET MVC 3 installe et active automatiquement NuGet dans le cadre de sa configuration. NuGet est un gestionnaire de package open source gratuit qui facilite la recherche, l’installation et l’utilisation des bibliothèques et outils .NET dans vos projets. Il fonctionne avec tous les types de projets Visual Studio (y compris ASP.NET Web Forms et ASP.NET MVC).
NuGet permet aux développeurs qui gèrent des projets open source (par exemple, des projets comme Moq, NHibernate, Ninject, StructureMap, NUnit, Windsor, RhinoMocks et Elmah) d’empaqueter leurs bibliothèques et de les inscrire dans une galerie en ligne. Il est alors facile pour les développeurs .NET qui souhaitent utiliser l’une de ces bibliothèques de trouver le package et de l’installer dans les projets sur lesquels ils travaillent.
Avec la mise à jour des outils ASP.NET 3, les modèles de projet incluent les packages NuGet préinstallés des bibliothèques JavaScript, afin qu’ils puissent être mis à jour via NuGet. Entity Framework Code First est également préinstallé en tant que package NuGet.
Pour plus d'informations sur NuGet, consultez la documentation NuGet.
ASP.NET MVC prend en charge la mise en cache de sortie des réponses pleine page depuis la version 1. MVC 3 prend également en charge la mise en cache de sortie de page partielle, ce qui vous permet de mettre facilement en cache des régions ou des fragments d’une réponse. Pour plus d’informations sur la mise en cache, consultez la section Mise en cache de sortie de page partielle du billet de blog de Scott Guthrie sur le candidat de publication MVC 3 et la section Mise en cache de la sortie d’action enfant des notes de publication de MVC 3.
ASP.NET MVC dispose d’une validation des requêtes intégrée qui permet de protéger automatiquement contre les attaques par injection XSS et HTML. Toutefois, vous souhaitez parfois désactiver explicitement la validation des demandes, par exemple si vous souhaitez permettre aux utilisateurs de publier du contenu HTML (par exemple, dans des entrées de blog ou du contenu CMS). Vous pouvez maintenant ajouter un attribut AllowHtml aux modèles ou afficher des modèles pour désactiver la validation des demandes par propriété pendant la liaison de modèle. Pour plus d’informations sur la validation des demandes, consultez les ressources suivantes :
Dans ASP.NET MVC 3, vous pouvez ajouter des modèles de projet, des moteurs d’affichage et des frameworks de projet de test unitaire à la boîte de dialogue Nouveau projet .
ASP.NET modèles de structure MVC 3 permettent de mieux identifier les propriétés de clé primaire sur les modèles et de les gérer de manière appropriée que dans les versions antérieures de MVC. (Par exemple, les modèles de structure vérifient maintenant que la clé primaire n’est pas générée en tant que champ de formulaire modifiable.)
Par défaut, les modèles créer et modifier des modèles utilisent désormais l’assistance Html.EditorFor
au lieu de l’assistance Html.TextBoxFor
. Cela améliore la prise en charge des métadonnées sur le modèle sous la forme d’attributs d’annotation de données lorsque la boîte de dialogue Ajouter une vue génère une vue.
De nouvelles surcharges de méthode ont été ajoutées pour les méthodes d’assistance LabelFor
et LabelForModel
. Les nouvelles surcharges vous permettent de spécifier ou de remplacer le texte d’étiquette.
Dans ASP.NET MVC 3, vous pouvez indiquer si vous souhaitez qu’une classe de contrôleur utilise l’état de session et, si c’est le cas, si l’état de session doit être en lecture/écriture ou en lecture seule. Pour plus d’informations sur la prise en charge du contrôleur sessionless, consultez Notes de publication de MVC 3.
Vous pouvez utiliser l’attribut AdditionalMetadata pour remplir le ModelMetadata.AdditionalValues
dictionnaire d’une propriété de modèle. Par exemple, si un modèle d’affichage a une propriété qui doit être affichée uniquement pour un administrateur, vous pouvez annoter cette propriété comme indiqué dans l’exemple suivant :
public class ProductViewModel
{
[AdditionalMetadata("AdminOnly", true)]
public string RefundCode {get; set;}
}
Ces métadonnées sont mises à la disposition de n’importe quel modèle d’affichage ou d’éditeur lorsqu’un modèle d’affichage produit est rendu. Il vous appartient d’interpréter les informations de métadonnées.
Le AccountController dans le modèle de projet Internet a été considérablement amélioré.
Un nouveau modèle de projet Intranet est inclus qui active l’authentification Windows et supprime accountController.
Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’hui