By

_ViewStart.cshtml Info

In ASP.NET MVC3 “master pages” are handled in the _ViewStart.cshtml file. As the name suggests the code in this file is executed before each view is rendered (see Scott Gu’s blog post for more details).

Now that you understand the basic use of _ViewStart.cshtml file lets go over the scope applied to these files. The _ViewStart.cshtml file will affect all views in the same directory and below the location of it. Also you can have another _ViewStart.cshtml file under a sub-folder which will be executed after the top level _ViewStart.cshtml. Using this feature you can in effect override the top level _ViewStart.cshtml with one closer to the view.

alt text

Now when the Index.cshtml view under the Home folder is rendered, it will first execute the /Views/_ViewStart.cshtml file and then it will render the Index.cshtml View.

However, when the Index.cshtml view under the DifferentMasterPage folder is rendered, it will first execute the /Views/_ViewStart.cshtml file, then it will execute the /Views/DifferentMasterPage/_ViewStart.cshtml file, and then it will render the Index.cshtml View.