ASP.NET MVC中的Razor页面生命周期

Ale*_*der 9 asp.net-mvc pipeline razor asp.net-mvc-3

我一般关于渲染管道的问题,我看过ASP.NET MVC管道方案,还有一个名为View Engine的步骤,它是如何工作的?我想知道这种情况:

  • 什么是首先渲染,母版页或视图?
  • 如果我Response.End()@{}页面开头的块中使用这个中断执行页面并停止渲染视图?

Dar*_*rov 15

什么是首先渲染,母版页或视图?

风景.解析器从布局开始,并构建一个LIFO(后进先出)结构,递归到子视图和局部视图.一旦LIFO准备就绪,它就会开始弹出并处理元素.这意味着将在布局之前处理最内部的部分/视图,并且要处理的最后一部分/视图是布局本身.

如果我在页面开头的@ {}块中使用Response.End(),那么中断执行页面并停止渲染视图吗?

Response.End在任何视图中使用都将导致呈现完全空白的页面.切勿在任何视图中使用.Response.End基本上通过触发一个ThreadAbortException你想要在你的Razor视图中做的东西来中止当前线程.