2010-12-10 2 views
0

Ich portiere eine asp.net Webforms-Anwendung zu mvc.net. Ich habe ein OR-Framework, das die Erstellung eines DataSession-Objekts erfordert, bevor Datenbankoperationen ausgeführt werden können.mit mvc.net gibt es ein Ereignis, das ausgelöst wird, nachdem die Ansicht gerendert wird

In meiner aktuellen Webform-Anwendung instanziiere ich die DataSession während des Page_Init -Ereignisses und während des Page_UnLoad -Ereignisses lösche ich das Objekt.

Ich suche nach etwas ähnliches mit mvc.net. Ich habe anfänglich mit OnActionExecuting (ausgelöst vor einer Aktion) und OnActionExecuted (nach der Aktion ausgelöst) begonnen. Während des Renderns der Seite gibt es jedoch ein verzögertes Laden von Entitäten, die fehlschlagen, da die DataSession nicht mehr verfügbar ist. Was ich brauche, ist etwas, das nach dem Rendern der Ansicht ausgelöst wird.

Antwort

5

Sie sollten nicht Lazy Loading in Ihren Ansichtsseiten auftreten lassen. Das bedeutet, dass die Ansicht auf Daten zugreift, die den gesamten Punkt von MVC durchbrechen.

Stattdessen sollten Sie die Gesamtheit der Daten in Ihrem Controller erhalten und diese dann an Ihre Ansicht übergeben.

+0

guter Punkt. sehr guter Punkt. – yamspog

+0

jfar- vereinbart 100%. Caching, Lazy Loading hat so viel mehr zu gewinnen auf einer Ebene, wo es von 'n' genutzt werden kann. +1 –

1

Ich habe diese Methoden noch nicht verwendet, aber vielleicht in überschreiben OnResultExecuted oder OnResultExecuting.

2

Die db-Verbindung in OnActionExecuting laden und in OnResultExecuted entladen.

Obwohl ich Application_BeginRequest und Application_EndRequest in global.asax verwenden würde.

Verwandte Themen