с mvc.net есть ли событие, которое возникает после рендеринга представления - PullRequest
0 голосов
/ 10 декабря 2010

Я портирую приложение asp.net webforms на mvc.net. У меня есть платформа OR, которая требует создания объекта DataSession до того, как какие-либо операции с базой данных могут быть выполнены.

В моем текущем приложении веб-формы я создаю экземпляр DataSession во время события Page_Init, а во время события Page_UnLoad очищаю объект.

Я ищу что-то похожее с mvc.net. Я изначально начал с использования OnACtionExecuting (возбуждается до действия) и OnActionExecuted (возбуждается после действия). Однако во время рендеринга страницы происходит некоторая ленивая загрузка сущностей, которые терпят неудачу, так как DataSession больше не доступен. Что мне нужно, это что-то, что сработает после рендеринга View.

Ответы [ 3 ]

5 голосов
/ 10 декабря 2010

Вы не должны допускать отложенной загрузки на страницах просмотра. Это означает, что представление обращается к данным, которые разрушают всю точку MVC.

Вместо этого вы должны получить все данные в вашем контроллере и затем передать их на ваше усмотрение.

2 голосов
/ 10 декабря 2010

Загрузить соединение БД в OnActionExecuting и выгрузить в OnResultExecuted.

Хотя я бы использовал Application_BeginRequest и Application_EndRequest в global.asax.

1 голос
/ 10 декабря 2010

Я не использовал эти методы раньше, но, возможно, рассмотрим переопределение OnResultExecuted или OnResultExecuting.

...