Wystarczy dodać kilka dodatkowych szczegółów.
Jak wspomniano przez @Ant P poniżej kod jest używany do rejestrowania ROUTE
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Właściwie MapRoute
jest Extension method
kolekcji na trasach i wewnętrznie wdrożone jak poniżej.
Uwaga: To tylko pseudo kod zgodnie z moim rozumieniem.
var url = "{controller}/{action}/{id}";
var defaults = new RouteValueDictionary();
defaults.Add("controller", "Home");
defaults.Add("action", "Index");
defaults.Add("id", UrlParameter.Optional);
var routeHandler = new MvcRouteHandler();
var Default = new Route(url,defaults,routeHandler);
routes.Add(Default);
GetHttpHandler()
sposób MvcRouteHandler wraca wystąpienie MvcHttpHandler
klasy, wewnątrz której obsługi kolejne żądanie.
Mam nadzieję, że pomoże to zrozumieć rolę UrlRoutingModule
Czy istnieje jakaś różnica między UrlRoutingModule i Http Module? –
@Amit: Jak powiedziałeś w pierwszym zdaniu ** Wnioski do aplikacji sieci Web opartej na MVC ASP.NET najpierw przechodzą przez obiekt UrlRoutingModule, który jest modułem HTTP. ** Czy istnieje jakaś różnica między UrlRoutingModule a modułem Http? –
Moduł HTTP to ogólna koncepcja kodu, który jest wykonywany przez IIS podczas przetwarzania żądań. Jest to bardzo prosty opis, ale więcej nie pasuje do komentarza, jest dużo lektury na ten temat. W .Net jest klasą, która implementuje interfejs IHttpModule. System.Web.Routing.UrlRoutingModule to konkretna klasa implementująca moduł IHttpModule, co czyni go konkretnym modułem HTTP, co robi coś konkretnego. Istnieje wiele modułów HTTP w ASP.Net i każdy może tworzyć własne. – user3285954