Objaśnienie procesu wykonywania we wzorcu ASP.NET MVC
autor: Microsoft
Dowiedz się, jak platforma ASP.NET MVC przetwarza żądanie przeglądarki krok po kroku.
Żądania do aplikacji internetowej opartej na ASP.NET MVC najpierw przechodzą przez obiekt UrlRoutingModule , który jest modułem HTTP. Ten moduł analizuje żądanie i wykonuje wybór trasy. Obiekt UrlRoutingModule wybiera pierwszy obiekt trasy zgodny z bieżącym żądaniem. (Obiekt trasy to klasa, która implementuje bazę danych RouteBase i zazwyczaj jest wystąpieniem klasy Route ). Jeśli żadne trasy nie są zgodne, obiekt UrlRoutingModule nie wykonuje niczego i umożliwia żądaniu powrót do zwykłego przetwarzania żądań ASP.NET lub usług IIS.
Z wybranego obiektu Route obiekt UrlRoutingModule uzyskuje obiekt IRouteHandler skojarzony z obiektem Route . Zazwyczaj w aplikacji MVC będzie to wystąpienie programu MvcRouteHandler. Wystąpienie IRouteHandler tworzy obiekt IHttpHandler i przekazuje go do obiektu IHttpContext . Domyślnie wystąpienie IHttpHandler dla MVC jest obiektem MvcHandler . Obiekt MvcHandler wybiera następnie kontroler, który ostatecznie obsłuży żądanie.
Uwaga
Gdy aplikacja internetowa MVC ASP.NET działa w usługach IIS 7.0, żadne rozszerzenie nazwy pliku nie jest wymagane dla projektów MVC. Jednak w usługach IIS 6.0 program obsługi wymaga mapowania rozszerzenia nazwy pliku mvc na bibliotekę DLL ISAPI ASP.NET.
Moduł i procedura obsługi to punkty wejścia do platformy ASP.NET MVC. Wykonują one następujące czynności:
- Wybierz odpowiedni kontroler w aplikacji internetowej MVC.
- Uzyskaj określone wystąpienie kontrolera.
- Wywołaj metodę Execute kontrolera.
Poniżej wymieniono etapy wykonywania projektu internetowego MVC:
Odbieranie pierwszego żądania dla aplikacji
- W pliku Global.asax obiekty route są dodawane do obiektu RouteTable .
Wykonywanie routingu
- Moduł UrlRoutingModule używa pierwszego pasującego obiektu Route w kolekcji RouteTable do utworzenia obiektu RouteData , który następnie jest używany do utworzenia obiektu RequestContext (IHttpContext).
Tworzenie procedury obsługi żądań MVC
- Obiekt MvcRouteHandler tworzy wystąpienie klasy MvcHandler i przekazuje je do wystąpienia obiektu RequestContext .
Tworzenie kontrolera
- Obiekt MvcHandler używa wystąpienia RequestContext do identyfikowania obiektu IControllerFactory (zazwyczaj wystąpienia klasy DefaultControllerFactory ) w celu utworzenia wystąpienia kontrolera.
Wykonaj kontroler — wystąpienie programu MvcHandler wywołuje metodę Execute kontrolera. |
Wywołaj akcję
- Większość kontrolerów dziedziczy z klasy bazowej Kontroler . W przypadku kontrolerów, które to robią, obiekt ControllerActionInvoker skojarzony z kontrolerem określa metodę akcji klasy kontrolera do wywołania, a następnie wywołuje tę metodę.
Wynik wykonania
- Typowa metoda akcji może odbierać dane wejściowe użytkownika, przygotować odpowiednie dane odpowiedzi, a następnie wykonać wynik, zwracając typ wyniku. Wbudowane typy wyników, które można wykonać, obejmują następujące elementy: ViewResult (który renderuje widok i jest najczęściej używanym typem wyników), RedirectToRouteResult, RedirectResult, ContentResult, JsonResult i EmptyResult.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla