ASP.NET Core - Razor 视图启动



本章将讨论 Razor 视图启动。MVC 中的 Razor 视图引擎遵循一种约定,它会在渲染单个视图中的代码之前,查找任何名为_ViewStart.cshtml的文件并执行其中的代码。

ViewStart Cshtml
  • ViewStart 文件中的代码无法渲染到页面的 HTML 输出中,但它可以用来从单个视图中的代码块中移除重复代码。

  • 在我们的示例中,如果我们希望每个视图都使用我们在上一章中创建的布局视图,我们可以将设置布局视图的代码放在 ViewStart 中,而不是将代码放在每个视图中。

示例

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

Layout Cshtml Add New Item

ASP.NET MVC 中有一个用于 ViewStart 页面的特定模板,因此在中间窗格中选择 MVC View Start Page。这里最重要的部分是此文件名为_ViewStart.cshtml。现在单击“添加”按钮。

View Cshtml

ViewStart 文件的主要用途是设置布局视图。

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

@{ 
   Layout = "~/Views/Shared/_Layout.cshtml"; 
}
  • 当 MVC 框架去渲染一个视图时,它会查看文件夹层次结构中是否存在 ViewStart 文件。

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

  • 如果我们将 ViewStart 仅放在 Home 文件夹中,那么只有在我们渲染 Home 文件夹中的一个视图时,这段代码才会执行。

  • 我们甚至可以有多个 ViewStart 文件,因此我们可以在 Views 文件夹中有一个 ViewStart.cshtml 文件,它为所有视图设置布局视图。

  • 但是,如果我们想更改 Home 文件夹中所有视图的默认设置,我们可以在 Home 文件夹中再添加一个 ViewStart 文件,将布局设置为其他内容。

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

ViewStart File

您将看到您的主页仍然与以前一样呈现,并且布局视图仍然有效。

广告
© . All rights reserved.