Razor Pages 不使用它的布局
Posted
技术标签:
【中文标题】Razor Pages 不使用它的布局【英文标题】:Razor Pages doesn't use it's layout 【发布时间】:2021-06-03 14:23:47 【问题描述】:我创建了一个位于 ~/Pages/Shared 文件夹中的 LayoutAdmin.cshtml。它在 ~/Pages/Admin 中的 Index.cshtml 中被引用,如下所示:
@page
@
Layout = "_LayoutAdmin";
ViewData["Title"] = "Admin Home";
但是当我转到该页面时,它会像在任何其他页面中一样使用默认布局。这是什么原因?代码中是否有指定的默认布局覆盖了我指定的布局?
【问题讨论】:
【参考方案1】:这是一个例子:
~/Pages/Shared/_LayoutAdmin.cshtml
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link href="/css/site.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div>
<h1>This is Admin layout </h1>
</div>
<div>
@RenderBody()
</div>
</body>
</html>
~/Pages/Admin/Index
@page
@model IndexModel
@
Layout = "_LayoutAdmin";
ViewData["Title"] = "Admin Home";
结果:
【讨论】:
你做了完全相同的事情,但我的不起作用。它只呈现我放入“索引”的内容,而不是我在布局中指定的内容。 你可以新建一个项目试试这个。【参考方案2】:好的,我已经解决了这个问题。 我已经删除了 _Layout.cshtml 页面,并创建了一个新页面作为具有相同内容的空白剃须刀页面。
【讨论】:
我认为还有另一种方法可以在您的_ViewStart.
中将默认布局设置为空
我正在使用 _ViewStart 但 _Layout 文件本身在将其更改为具有相同代码的剃须刀页面之前不起作用。以上是关于Razor Pages 不使用它的布局的主要内容,如果未能解决你的问题,请参考以下文章
Asp .NET Core 2.2 Razor 页面布局和局部