Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
par Microsoft
Découvrez comment l’infrastructure ASP.NET MVC traite une requête de navigateur étape par étape.
Les requêtes adressées à une application web ASP.NET MVC passent d’abord par l’objet UrlRoutingModule , qui est un module HTTP. Ce module analyse la demande et exécute la sélection d'itinéraire. L’objet UrlRoutingModule sélectionne le premier objet de routage qui correspond à la requête actuelle. (Un objet route est une classe qui implémente RouteBase et est généralement un instance de la classe Route.) Si aucun itinéraire ne correspond, l’objet UrlRoutingModule ne fait rien et permet à la requête de revenir au traitement de la requête ASP.NET ou IIS standard.
À partir de l’objet Route sélectionné, l’objet UrlRoutingModule obtient l’objet IRouteHandler associé à l’objet Route . En règle générale, dans une application MVC, il s’agit d’une instance de MvcRouteHandler. L’instance IRouteHandler crée un objet IHttpHandler et lui transmet l’objet IHttpContext. Par défaut, le instance IHttpHandler pour MVC est l’objet MvcHandler. L’objet MvcHandler sélectionne ensuite le contrôleur qui gérera finalement la requête.
Notes
Lorsqu'une application Web ASP.NET MVC s'exécute dans IIS 7.0, aucune extension de nom de fichier n'est requise pour les projets MVC. Toutefois, dans IIS 6.0, le gestionnaire requiert que vous mappiez l'extension de nom de fichier .mvc à la DLL ISAPI ASP.NET.
Le module et le gestionnaire sont les points d’entrée de l’infrastructure MVC ASP.NET. Elles exécutent les actions suivantes :
- Sélection du contrôleur approprié dans une application Web MVC.
- Obtention d'une instance de contrôleur spécifique.
- Appelez la méthode Execute du contrôleur.
Voici la liste des étapes d’exécution d’un projet web MVC :
Réception de la première demande concernant l'application
- Dans le fichier Global.asax, les objets Route sont ajoutés à l’objet RouteTable .
Effectuer le routage
- Le module UrlRoutingModule utilise le premier objet Route correspondant dans la collection RouteTable pour créer l’objet RouteData , qu’il utilise ensuite pour créer un objet RequestContext (IHttpContext).
Création d'un gestionnaire de demandes MVC
- L’objet MvcRouteHandler crée un instance de la classe MvcHandler et lui transmet le instance RequestContext.
Création du contrôleur
- L’objet MvcHandler utilise l’instance RequestContext pour identifier l’objet IControllerFactory (généralement un instance de la classe DefaultControllerFactory) avec lequel créer le contrôleur instance.
Contrôleur d’exécution : le instance MvcHandler appelle la méthode Execute du contrôleur. |
Appel de l'action
- La plupart des contrôleurs héritent de la classe de base controller . Pour les contrôleurs qui le font, l’objet ControllerActionInvoker associé au contrôleur détermine la méthode d’action de la classe de contrôleur à appeler, puis appelle cette méthode.
Exécution du résultat
- Une méthode d’action classique peut recevoir une entrée utilisateur, préparer les données de réponse appropriées, puis exécuter le résultat en retournant un type de résultat. Les types de résultats intégrés qui peuvent être exécutés sont les suivants : ViewResult (qui affiche une vue et est le type de résultat le plus souvent utilisé), RedirectToRouteResult, RedirectResult, ContentResult, JsonResult et EmptyResult.