2010-12-10 4 views
0

Je suis portage d'une application Web asps asp.net à mvc.net. J'ai un cadre OR qui nécessite qu'un objet DataSession soit créé avant que toute opération de base de données puisse être effectuée.avec mvc.net y at-il un événement qui est déclenché après que la vue est rendue

Dans mon application Webform actuelle, j'instancie la DataSession pendant l'événement Page_Init et pendant l'événement Page_UnLoad j'efface l'objet.

Je cherche quelque chose de similaire avec mvc.net. J'ai commencé par utiliser OnACtionExecuting (déclenché avant une action) et OnActionExecuted (déclenché après l'action). Cependant, lors du rendu de la page, il y a un chargement paresseux d'entités qui échouent car DataSession n'est plus disponible. Ce dont j'ai besoin, c'est quelque chose qui se déclenchera après que la vue ait été rendue.

Répondre

5

Vous ne devez pas laisser le chargement paresseux se produire dans vos pages d'affichage. Cela signifie que la vue accède à des données qui cassent tout le point de MVC. Au lieu de cela, vous devriez obtenir l'intégralité des données dans votre contrôleur et ensuite transmettre cela à votre vue.

+0

bon point. très bon point. – yamspog

+0

jfar- convenu 100%. mise en cache, chargement paresseux a tellement plus à gagner à un niveau où il peut être exploité par «n». +1 –

1

Je n'ai pas utilisé ces méthodes auparavant, mais peut-être envisager de surcharger OnResultExecuted ou OnResultExecuting.

2

Chargez la connexion db en OnActionExecuting et déchargez en OnResultExecuted.

Bien que je voudrais utiliser Application_BeginRequest et Application_EndRequest dans global.asax.

Questions connexes