在本章中,无涯教程将讨论Razor View Start。 MVC中的Razor视图引擎有一个约定,即它将查找名称为 _ViewStart.cshtml 的任何文件,并在该文件中执行代码。
ViewStart文件中的代码无法呈现到页面的HTML输出中,但可用于从各个视图内的代码块中删除重复的代码。
在示例中,如果希望每个视图都使用上一章中创建的Layout视图,则可以将代码设置为在ViewStart内部设置Layout视图,而不是在每个视图内部都包含代码
以一个简单的例子来看一下它是如何工作的,在应用程序中,不希望每个视图都将其布局视图指定为 _Layout.cshtml ,因此,右键单击Views文件夹,然后选择Add→New Item。
ASP.NET MVC中有一个ViewStart页面的特定模板,因此请在中间窗格中选择" MVC View Start Page",这里最重要的部分是此文件名为 _ViewStart.cshtml ,现在单击添加按钮。
ViewStart文件的主要用途是设置布局视图。
现在转到Index.cshtml文件,然后将其添加到ViewStart文件中,如以下程序所示。
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }
当MVC框架渲染视图时,它将查看文件夹层次结构中是否存在ViewStart文件。
已经将_ViewStart直接放置到Views文件夹中,这将影响Views文件夹内所有视图,以及Home文件夹,Shared文件夹以及将来可能添加的任何其他控制器文件夹中的视图。
如果使用ViewStart并将其仅放置在Home文件夹中,那么只有当在Home文件夹中渲染其中一个视图时,才会执行这一小段代码。
甚至可以拥有多个ViewStart文件,因此可以在Views文件夹中拥有一个ViewStart.cshtml,用于设置所有视图的布局视图。
但是,如果想在Home文件夹中更改所有视图的默认设置,可以在Home文件夹中使用另一个ViewStart来将布局设置为其他格式。
保存所有文件并运行应用程序。
您将看到您的主页仍然按照以前的方式进行渲染,并且无涯教程仍在使用"Layout"视图。
参考链接
https://www.learnfk.com/asp.net_core/asp.net-core-razor-view-start.html
标签:Core,ASP,Layout,Views,视图,文件夹,cshtml,ViewStart From: https://blog.51cto.com/u_14033984/7815998