ASP.NET Core - Razor View Start

在本章中,我们将讨论Razor View Start. MVC中的Razor视图引擎有一个约定,它将查找名为 _ViewStart.cshtml 的任何文件,并执行此文件中的代码.在单个视图中执行代码之前.

ViewStart Cshtml

  • ViewStart文件中的代码无法呈现到页面的HTML输出中,但可用于从各个视图中的代码块中删除重复的代码.

  • 在我们的示例中,如果我们希望每个视图都使用我们在上一章中创建的Layout视图,我们可以放置代码来设置Layout在ViewStart中查看,而不是在每个视图中都有代码.

示例

让我们举一个简单的例子来看看它是如何工作的.在我们的应用程序中,我们不希望每个视图都指定其布局视图是 _Layout.cshtml .因此,右键单击Views文件夹并选择 Add → 新项目.

布局Cshtml添加新项目

ASP.NET MVC中有一个ViewStart页面的特定模板,因此请在中间窗格中选择MVC View Start Page.这里最重要的部分是该文件名为 _ViewStart.cshtml .现在点击Add按钮.

View Cshtml

ViewStart文件的主要用途是设置Layout视图.

现在让我们转到Index.cshtml文件并剪切Layout行,然后将其添加到ViewStart文件中,如图所示以下程序.

@{ 
   Layout = "~/Views/Shared/_Layout.cshtml"; 
}

  • 当MVC框架用于渲染视图时,它将查看文件夹层次结构中是否存在ViewStart文件.

  • 我们已将_ViewStart直接放入Views文件夹中.这将影响Views文件夹内所有文件夹中的所有视图,以及Home文件夹内的视图,以及Shared文件夹,以及我们将来可能添加的任何其他控制器文件夹.

  • 如果我们将ViewStart放在Home文件夹中,那么这些代码只会在我们渲染其中一个视图时执行.主文件夹.

  • 我们甚至可以拥有多个ViewStart文件,因此我们可以在Views文件夹中找到ViewStart.cshtml,为所有视图设置Layout视图.

  • 但是如果我们想要改变Home文件夹中所有视图的默认值,我们可以在Home文件夹中设置另一个ViewStart来设置布局到其他东西.

让我们保存所有文件并运行应用程序.

ViewStart File

你会看到你的我的页面仍然呈现它之前的方式,我们仍然有效的布局视图.