Asp.Net MVC中varoius文件的执行顺序

时间:2014-11-25 17:05:13

标签: asp.net asp.net-mvc

这是一个非常基本的问题。我经历了MVC生命周期,但没有找到这个基础知识。

我们有_Viewstart_Layout,观看次数和部分观看次数。考虑视图使用_Layout文件的标准方案。 _Layout文件和视图都有部分视图。所有这些文件执行的顺序以及生成实际html的顺序。

1 个答案:

答案 0 :(得分:1)

顾名思义_Viewstart是要处理的其他视图文件中的第一个。 _Viewstart决定要处理的布局文件。您可以在_Viewstart中使用条件代码来选择正确的布局文件,具体取决于控制器,如下所示

@{
   var controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();

   string layout = "";
   if (controller == "Reports")
   {
       layout = "~/Views/Shared/_ReportsLayout.cshtml";
   }
   else
   {
       layout = "~/Views/Shared/_Layout1.cshtml";
   }

  Layout = layout;
}

据我所知,订单如下

1. _Viewstart
2. _Layout
3. Partial within layout
4. The actual view along with the partial within the view depending on the order as it appears