如图:
_ViewStart.cshtml就是MVC中的布局页面/模板页面。
用户访问流程图:
原理:先去执行Views文件夹下【_ViewStart.cshtml】页面,然后同级目录文件夹(上图中的home文件夹)下执行【_ViewStart.cshtml】页面(如果同级目录文件夹下有【_ViewStart.cshtml】页面),最后执行请求视图(上图Index.cshtml页面)
MVC中任何视图页面最终都会被创建成一个页面类对象,【_ViewStart.cshtml】页面也不例外,它是被创建【继承StartPage抽象类的一个页面类对象】,所以它可以使用StartPage抽象类中的属性和方法。
StartPage抽象类图
布局页面传值可以使用PageData
Views文件夹下的_ViewStart.cshtml
Views => Stu文件夹下的_ViewStart.cshtml
Views => Stu文件夹下的Index.cshtml(注:Index.cshtml没有使用_ViewStart.cshtml布局页面)
结果:执行顺序 Views 下ViewStart.cshtml => Stu下ViewStart.cshtml => Stu下Index.cshtml