ASP.NET MVC - qu'est-Ce que UrlRoutingModule?
Je lisais à propos de la Demande de cycle de vie dans MVC. Je suis coincé dans la compréhension de la ligne ci-dessous.
La UrlRoutingModule Intercepte la Demande
Requête - qu'est-Ce que UrlRoutingModule?
J'ai beaucoup cherché sur google mais ne pouvait pas trouver utile
OriginalL'auteur | 2013-05-20
Vous devez vous connecter pour publier un commentaire.
Demandes à un ASP.NET MVC de l'application Web passe d'abord par la
UrlRoutingModule
objet, qui est un module HTTP. Ce module traite la demande et effectue le choix de l'itinéraire. LeUrlRoutingModule
objet sélectionne le premier objet qui correspond à la demande actuelle. Route de l'objet est une classe qui implémenteRouteBase
, et est généralement une instance de laRoute
classe.) Si aucun itinéraire match, leUrlRoutingModule
objet ne fait rien et permet la demande de revenir à la régulière ASP.NET IIS ou le traitement de la demande.De l'Itinéraire sélectionné un objet, le
UrlRoutingModule
objet obtient un objet qui implémente l'IRouteHandler
interface et qui est associé à laRoute
objet. Généralement, dans une application MVC, ce sera une instance de laMvcRouteHandler
classe. LeMvcRouteHandler
exemple crée unMvcHandler
objet qui implémente l'IHttpHandler
interface. LeMvcHandler
objet, puis sélectionne le contrôleur qui va finalement répondre à la demande. Pour plus d'informations, voir ASP.NET Routage.La
UrlRoutingModule
etMvcRouteHandler
classes sont les points d'entrée à la ASP.NET framework MVC. Ils effectuent les actions suivantes:Sélectionnez le contrôleur approprié dans une application Web MVC.
Obtenir un contrôleur spécifique de l'instance.
Appeler le contrôleur de
Execute
méthode.Référence
Comme vous l'avez dit à vous, première phrase, les Demandes à un ASP.NET MVC de l'application Web passe d'abord par la UrlRoutingModule objet, qui est un module HTTP. quelle Est la différence entre UrlRoutingModule et le Module Http ?
Un module HTTP est un concept générique de code de ce qui est exécuté par le serveur IIS quand le traitement des demandes. C'est très simple description mais plus ne rentre pas dans un commentaire, il y a beaucoup de lecture sur ce sujet. Dans .Net est une classe ce qui implémente l'interface IHttpModule. Système.Web.Le routage.UrlRoutingModule est une classe concrète ce qui met en œuvre IHttpModule et cela en fait un béton HTTP module de quoi quelque chose de concret. Il existe de nombreux modules HTTP dans ASP.Net et n'importe qui peut créer la leur.
OriginalL'auteur Amit
Si vous regardez à l'intérieur du Mondial.asax d'un projet MVC, vous verrez une méthode appelée
RegisterRoutes
. Dans ce cadre, vous verrez le "par défaut" ASP.NET MVC route:Cette route spécifie le format de l'URL de la demande et de la manière dont cela devrait être mappés à des actions de contrôleur, c'est à dire la première partie de la route identifie le contrôleur, la deuxième partie de l'action, etc. Vous pouvez ajouter d'autres personnalisé itinéraires pour cela, ce qui vous permet de travailler avec les URLs dans les différents formats.
La
UrlRoutingModule
est tout simplement la classe qui est responsable de la prise de la demande entrante URL et correspondant à l'une de ces routes, de sorte que le bon contrôleur de l'action est exécutée.De MSDN:
OriginalL'auteur Ant P
Juste pour ajouter un peu plus de détails.
Comme mentionné par @Ant P code ci-dessous est utilisé pour enregistrer l'itinéraire
Fait
MapRoute
est unExtension method
sur les Routes de la collection, et en interne mis en œuvre en tant que ci-dessous.Note: c'est juste un pseudo code pour ma compréhension.
MvcRouteHandler de
GetHttpHandler()
méthode retourne une instance deMvcHttpHandler
classe, gérer en interne sur demande.Espère que cela va aider à comprendre le rôle de
UrlRoutingModule
OriginalL'auteur user2243747