ASP.NET Core Razor 视图开始
在本章中,我们将讨论 Razor 视图开始(Razor View Start)。MVC 中的 Razor 视图引擎有一个约定,它将查找名为 _ViewStart.cshtml 的任何文件,并执行该文件中的代码。在单个视图中执行代码之前。
ViewStart 文件中的代码无法呈现为页面的 HTML 输出,但它可以用于从各个视图中的代码块中删除重复的代码。
在我们的实例中,如果我们希望每个视图都使用我们在上一章中创建的 Layout 视图,那么我们可以将设置 Layout 视图的代码放在 ViewStart 中,而不是将代码放在每个视图中。
实例
让我们举一个简单的例子来看看它是如何工作的。在我们的应用程序中,我们不希望每个视图都指定其 Layout 视图为_Layout.cshtml,因此,右键单击 Views 文件夹并选择 添加→ 新建项。
然后点击 添加 按钮。
ViewStart 文件的主要用途是设置布局视图。
现在让我们转到 Index.chtml 文件,剪切 Layout 行,然后将其添加到 ViewStart 文件中,如以下程序所示。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
- 当 MVC 框架开始渲染视图时,它将查看文件夹层次结构中是否有 ViewStart 文件。
- 我们已经将 _ViewStart 直接放置到 Views 文件夹中。这将影响 views 文件夹中所有文件夹中的所有视图,以及 Home 文件夹、Shared 文件夹中的视图,以及我们将来可能添加的任何其他控制器文件夹。
- 如果我们获取 ViewStart 并仅将其放置在 Home 文件夹中,那么只有在渲染 Home 文件夹中的其中一个视图时,才会执行这一小段代码。
- 我们甚至可以有多个 ViewStart 文件,所以我们可以在 Views 文件夹中有一个 ViewStart.cshtml,它为所有视图设置 Layout 视图。
- 但是,如果我们想更改 Home 文件夹中所有视图的默认设置,那么可以在 Home 中设置另一个 ViewStart,将布局设置为其他内容。
让我们保存所有文件并运行应用程序。结果如下:
您将看到您的主页显示跟之前一样,并且我们仍然使用 Layout 视图。