pen*_*178 6 asp.net-core razor-pages
以前,我使用 MVC 创建了 C# 应用程序,并且可以指定要在其文件中的视图上使用的布局视图。这样视图文件包含:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
/*Rest of file*/
Run Code Online (Sandbox Code Playgroud)
最近我开始使用 Razor 页面创建应用程序。到目前为止,我只有一个布局页面。但是,我想对页面子集使用不同的布局页面,并且我只能看到如何为 Pages 文件夹中的所有页面指定单个布局页面。由于布局是在_ViewStart.cshtml文件中声明的。该文件的内容很简单:
@{
Layout = "_Layout";
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以对某些页面使用一个布局文件,然后对其他页面使用不同的布局文件?
Yiy*_*You 10
如果你想的话using one layout file for some pages, and then a different layout files for other pages,你可以尝试在_ViewStart.cshtml中获取当前的url,然后检查url并设置布局页面。下面是一个演示:
_ViewStart.cshtml(Page1和Page2将设置Layout = "_Layout";,其他页面将设置Layout = "_Layout1";):
@{
var routeUrl = ViewContext.RouteData.Values["Page"].ToString();
//you can put pages' name into pages
var pages = new List<string> { "Page1", "Page2"};
//if routeUrl contains any of pages,the page will use _Layout as Layout page,the other pages will use _Layout1 ad Layout page
if (pages.Any(routeUrl.Contains))
{
Layout = "_Layout";
}
else {
Layout = "_Layout1";
}
}
Run Code Online (Sandbox Code Playgroud)
另外,您可以使用
@{
Layout="xxx"
}
Run Code Online (Sandbox Code Playgroud)
如前所述,在不同页面中设置不同的布局David Tansey。
| 归档时间: |
|
| 查看次数: |
13067 次 |
| 最近记录: |