Gibt es in ASP.NET MVC vor der Ausführung des Layouts und nach dem Rendern von Posts Hooks?

8

Wenn ASP.NET MVC eine Seite ausführt, die Razor enthält, wird zuerst der Hauptteil ausgeführt, zB die RenderBody -Methode, dann wird der Code für das Layout ausgeführt und zusammen gewoben.

Dies ist in diesem Blogeintrag :

  

System.Web.Mvc.RazorView.RenderView ()   System.Web.WebPages.WebPageBase.ExecutePageHierarchy () // nicht virtuell   Version System.Web.WebPages.WebPageBase.PushContext ()
  System.Web.WebPages.WebPageBase.ExecutePageHierarchy () // virtuell   version this.Execute () // Generierter Code aus unserer Ansicht
  System.Web.WebPages.WebPageBase.PopContext
  RenderSurrounding (virtualPath, Körper); // Render-Layout, das ist   Ähnlich wie beim Renderprozess von View können Sie im Wesentlichen verschachtelt sein   Layout VerifyRenderdBodyOrSertions ();

Ich möchte meinen Ansichten und meinem Layout Code hinzufügen, der die tatsächliche logische Position auf der Seite nachzeichnet.

Gibt es eine Methode, mit der ich eine Methode zum Ausführen von kurz vor RenderSurrounding und anschließen kann, nachdem RenderBody die Ausführung beendet hat?

    
Sam Saffron 15.02.2012, 23:43
quelle

1 Antwort

5

Sie können die Methode ExecutePageHierarchy auf der Seite selbst überschreiben, indem Sie bei einer WebViewPage -Implementierung wie folgt einen anderen Basistyp für Ihre Seiten erstellen:

%Vor%

Sie erhalten die Ausgabe direkt vor und nach dem Inhalt der eigentlichen Seite (und damit innerhalb des Layouts). Ich bin mir nicht sicher, ob das das ist, was du suchst, versuchst du nur die Skripte bei </body> zu schreiben, stelle ich mir vor?

Die Hauptsache ist, diese Art eines Basistyps nur für den Haupt-.cshtml zu verwenden (keine Teiltafeln oder im Layout), es werden diese Output.Write s um die RenderBody -Ausgabe des Layouts gerendert (naja, wirklich , gerade drinnen).

Sie können den Basistyp pro Verzeichnis in web.config festlegen.

    
Paul Tyng 16.02.2012 08:43
quelle

Tags und Links