如何在Razor内容页面中包含_Layout.cshtml?
例如,我在项目的根目录中创建了两个cshtml文件。
第一个文件是_Layout.cshtml
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<h1>Main Layout</h1>
<br>
<br>
@RenderBody();
</body>
</html>
&#13;
第二个文件是Product.cshtml
@inherits ServiceStack.Razor.ViewPage
@{
Layout = "~/_Layout.cshtml";
}
<h1>Product Page</h1>
&#13;
当我致电http://localhost:6000/product
时结果是在浏览器中
Product Page
但它应该是
Main Layout
Product Page
为什么? 问题是什么?
答案 0 :(得分:2)
布局名称应该是文件的名称而不是路径,您永远不需要引用_Layout
,因为它是默认值。
此外,如果您希望自己的观看次数和内容页面共享相同的_Layout.cshtml
页面,请将其添加到/Views/_Layout.cshtml
或/Views/Shared/_Layout.cshtml
。
如果这是自托管HttpListener项目,您需要确保所有*.cshtml
设置为复制到输出目录或WebHostPhysicalPath references your project path。