转发: https://www.cn blogs.com/jesen 1315/p/11041967.html
与Asp.Net MVC一样,布局视图_Layout.cshtml只有一个要更改的布局视图文件,并在更改后立即反映在整个APP应用程序的所有视图中,因此易于保持所有视图的一致外观
ASP.NET Core MVC包含视图文件,如布局视图。 其他. cshtml文件(如_ViewStart.cshtml和_ViewImports.cshtml )的文件名以下划线开头,这些文件名的第一条下划线指示这些文件不直接面向浏览器。
一个APP应用程序可以包含多个布局视图文件。 例如,一个布局视图文件服务是管理员用户,另一个不同的布局视图文件服务于普通用户。
通常,在Views/Shared文件夹下创建布局视图,并将其命名为_Layout.cshtml。
@ViewBag.Title @RenderBody (
@ * @ if (issectiondefined (' scripts ' ) )
{
@rendersection(scripts );
}*@
@rendersection('scripts ',false );
您可以指定要在Views/_ViewStart.cshtml中启用的布局页面。 因为_ViewStart.cshtml是在请求时首先找到的。
@{
Layout='_Layout ';
}
@if(user.isinrole('admin ' ) )
{
Layout='_AdminLayout ';
}
else
{
layout=' _ no管理员layout ';
}
另外,如果许多页面使用相同的命名空间、相同的model,则可以将通用命名空间、model添加到Views/_ViewImports.cshtml文件中。
@using StudentManagement.Models;
@ usingstudentmanagement.view models;
@*还支持以下命令*@
@*
@addTagHelper
@removeTagHelper
@tagHelperPrefix
@model
@inherits
@inject
*@
_ViewStart和_ViewImports支持分层,因此除了Views文件夹外,还可以将另一个_ViewImports放置在Views文件夹的Home子文件夹中,以便在文件Home的文件夹中