Жизненный цикл бритвенной страницы в ASP.NET MVC - PullRequest
9 голосов
/ 19 ноября 2011

В общем, мой вопрос о конвейере рендеринга. Я видел схему конвейера ASP.NET MVC и был шаг, называемый View Engine, так как он работает?Я хочу знать об этих сценариях:

  • Что отображается в первую очередь, главная страница или представление?
  • Если я использую Response.End() в @{} блок в начале страницы делаетэто прерывистое выполнение страницы и останавливает рендеринг представления?

Ответы [ 2 ]

15 голосов
/ 19 ноября 2011

Что отображается первым, главная страница или представление?

Вид. Анализатор запускается из макета и создает структуру LIFO (Last In First Out), возвращаясь к дочерним представлениям и частям. Как только LIFO готов, он начинает выталкивать и обрабатывать элементы. Это означает, что самые внутренние детали / представления будут обработаны перед макетом, а последним из них будет сам макет.

Если я использую Response.End () в блоке @ {} в начале страницы, это делает прервать выполнение страницы и остановить рендеринг представления?

Использование Response.End в любом представлении приведет к отображению полностью пустой страницы. Никогда не используйте в любом виде. Response.End в основном прерывает текущий поток, вызывая ThreadAbortException, а это не то, что вы хотите сделать в своих представлениях Razor.

2 голосов
/ 19 ноября 2011

Посмотрите на плакат Стива Сандерсона Обработка запросов .Это объясняет весь процесс запроса довольно подробно.Это из MVC версии 1.0, но все еще действует.Просто замените 'WebForm' на Razor.

Это действительно не должно беспокоить вас, отображается ли мастер или представление первым.Не могли бы вы объяснить, почему это важно для вас?

...