2013-07-30 2 views
7

ASP.NET MVC4 не имеет жизненного цикла страницы, как это делают обычные страницы aspx. Как использовать preinit, init, prerender в MVC4?MVC4 и жизненный цикл страницы?

Есть ли какой-либо жизненный цикл в MVC4?

+1

Зачем вам это нужно? Чего вы пытаетесь достичь? – levelnis

+0

Вы также можете проверить ссылку ниже, http://stackoverflow.com/questions/17953756/mvc4-and-page-life-cycle –

+0

Это должно дать вам лучше понять: HTTP: //www.codeproject .com/Статьи/741228/MVC-Application-Lifecycle – Vishal

ответ

10

Нет, нет жизненного цикла страницы самого по себе (потому что нет «страницы» объекта), но есть обработка запроса трубопровод, который обычно идет что-то вроде этого:

  1. Входящего запрос определен вверх по System.Web.Routing.UrlRoutingModule, который использует URL-адрес запроса для сопоставления запроса методу действия контроллера.
  2. соответствующий контроллер экземпляр
  3. Модели связывание и проверки входных данных могут произойти
  4. The OnActionExecuting -методов фильтров действий на контроллере и/или действие вызывается
  5. метод действия сам вызывается
  6. Любых OnActionExecuted и OnResultExecuting вызывается методы действий фильтров
  7. ActionResult, возвращаемый методом действия (обычно, ViewResult, который отображает HTML).
  8. Любое OnResultExecuted -используются методы действий фильтров.

Приведенный выше список является лишь грубый набросок:

маршрутизации: Отображение входящего запроса к способу действия контроллера MVC история сама по себе. См. ASP.NET Routing on MSDN для получения дополнительной информации.

Фильтры действий: Существуют фильтры действий для авторизации, кэширования выходных данных, обработки ошибок и т. Д., Все из которых выполняются в определенное время. На этот раз см. Filtering in ASP.NET MVC on MSDN для получения дополнительной информации.

ASP.NET: И, конечно же, есть еще все traditional ASP.NET application events. Следовательно, HTTP-модули, такие как старые добрые System.Web.Security.FormsAuthenticationModule и System.Web.Caching.OutputCacheModule, все еще могут участвовать в обработке запроса.

Если вы хотите вникать в детали, загрузите исходный код веб-стека ASP.NET с CodePlex. Многое из того, что вы после этого, будет в классе System.Web.Mvc.ControllerActionInvoker, который, несмотря на страшное имя, не так уж трудно следовать.

См. Ответ Деджана для ссылки на хорошую диаграмму, которая суммирует большую часть этого.

+0

Отличная диаграмма и ответ. – 4thSpace

2
  1. Ваш веб-браузер отправляет запрос HTTP на сервере
  2. запрос проходит через HTTP Маршрутизация more info here
  3. Эти маршруты, как правило, перечислены в Global.asax.cs файле, когда наш запрос сопоставляется один из этих карт маршрутов мы вперед
  4. обработчика маршрута, здесь мы создаем MVC обработчик запросов, теперь мы знаем, какой контроллер будет будет использоваться и с действием для выполнения
  5. Тогда мы получим в контроллер, где мы называем услуги и создать модель
  6. мы передаем эту модель для просмотра двигателя (например, Razor)
  7. тогда вид визуализируется и outputed в ответ

MSDN документацию можно найти на http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98).aspx

0

Вы можете проверить эту статью «Lifecycle of an ASP.NET MVC 5 Application» Это опубликовано около недели назад или около того. Здесь также загружается PDF file.

+0

Обратите внимание, что [ссылки только ответов] (http://meta.stackoverflow.com/tags/link-only-answers/info) обескуражены, ответы SO должны быть конечной точкой поиска решения (vs. еще одна остановка ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra

Смежные вопросы