2013-07-30 10 views
7

ASP.NET MVC4 hat keinen Seitenlebenszyklus wie normale ASPX-Seiten. Wie benutzt man preinit, init, prerender in MVC4?MVC4 und Seitenlebenszyklus?

Gibt es irgendeine Art von Lebenszyklus in MVC4?

+1

Warum möchten Sie? Was willst du erreichen? – levelnis

+0

Sie können auch den folgenden Link überprüfen, http://stackoverflow.com/questions/17953756/mvc4-and-page-life-cycle –

+0

Das muss man einen besseren Einblick geben: http: //www.codeproject/Artikel/741228/MVC-Application-Lifecycle – Vishal

Antwort

10

Nein, es gibt keine Lebenszyklus Seite per se (weil es kein ‚Seite‘ Objekt), aber es ist eine Anforderung Verarbeitungspipeline, die in der Regel etwas geht:

  1. Incoming Anfrage gerichtet up von der System.Web.Routing.UrlRoutingModule, die die Request-URL verwendet, um die Anfrage einer Controller-Aktionsmethode zuzuordnen.
  2. die entsprechende Steuerung instantiiert
  3. Modell-Bindung und die Eingabevalidierung
  4. Der OnActionExecuting -Methoden Wirkungs filtert jegliche auf dem Controller und/oder die Aktion aufgerufen werden
  5. die Aktionsmethode selbst aufgerufen wird
  6. auftreten kann, OnActionExecuted und OnResultExecuting -Methoden Wirkungs Filter werden
  7. The ActionResult durch die Wirkung Verfahren (typischerweise ein ViewResult die HTML rendert) ausgeführt wird zurückgegeben aufgerufen.
  8. Alle OnResultExecuted -Methoden von Aktionsfiltern werden aufgerufen.

Die obige Liste ist nur eine grobe Skizze:

Routing: die Abbildung einer eingehenden Anfrage an das Aktionsmethode eines MVC-Controller ist eine Geschichte an und für sich. Siehe ASP.NET Routing on MSDN für weitere Informationen.

Aktionsfilter: Es gibt Aktionsfilter für die Autorisierung, Ausgabe Caching, Fehler usw. Handhabung, von denen zu einem bestimmten Zeitpunkt laufen alle. Dieses Mal siehe Filtering in ASP.NET MVC on MSDN für weitere Informationen.

ASP.NET: Und natürlich ist alles da noch die traditional ASP.NET application events. Daher können HTTP-Module wie die guten alten System.Web.Security.FormsAuthenticationModule und System.Web.Caching.OutputCacheModule weiterhin an der Verarbeitung einer Anfrage teilnehmen.

Wenn Sie sich wirklich in die Details vertiefen möchten, laden Sie den Quellcode für den ASP.NET-Webstapel unter CodePlex herunter. Viel von dem, was Sie suchen, wird in der System.Web.Mvc.ControllerActionInvoker Klasse sein, die, trotz des unheimlichen Namens, nicht zu schwer zu folgen ist.

Siehe Dejans Antwort für einen Link zu einem guten Diagramm, das viel davon zusammenfasst.

+0

Ausgezeichnetes Diagramm und Antwort. – 4thSpace

2
  1. Ihr Web-Browser sendet HTTP-Request auf dem Server
  2. Anfrage geht durch HTTP more info here
  3. Diese Routen Routing werden in der Regel in Global.asax.cs Datei aufgelistet wird, wenn unsere Forderung nach einem dieser Karte Routen abgestimmt ist wir vorwärts
  4. Routenhandler, hier wir MVC-Request-Handler erstellen, wissen wir nun, welcher Controller verwendet werden, und mit der Aktion wird
  5. Dann erhalten wir die Steuerung, wo wir Dienste aufrufen und erstellen Modell
  6. ausführen
  7. geben wir dieses Modell Motor anzusehen (zB Razor)
  8. dann wird Ansicht gerendert und outputed in Reaktion

Msdn Dokumentation kann auf http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx

0

finden Sie können diesen Artikel auf „Lifecycle of an ASP.NET MVC 5 Application“ Es ist vor etwa einer Woche veröffentlicht. Hier ist auch ein PDF file zum Download.

+0

Beachten Sie, dass [Nur-Link-Antworten] (http://meta.stackoverflow.com/tags/link-only-answers/info) nicht empfohlen werden. SO-Antworten sollten der Endpunkt einer Suche nach einer Lösung sein (vs. ein weiterer Zwischenstopp von Referenzen, die im Laufe der Zeit abgestanden werden). Bitte beachten Sie, dass Sie hier eine eigenständige Zusammenfassung hinzufügen und den Link als Referenz beibehalten. – kleopatra