1

如何在 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>

第二个文件是 Product.cshtml

@inherits ServiceStack.Razor.ViewPage

@{ 
    Layout = "~/_Layout.cshtml";

}

    <h1>Product Page</h1>

当我调用http://localhost:6000/product

结果在浏览器中是

Product Page

但应该是

Main Layout

Product Page

为什么 ?有什么问题 ?

4

1 回答 1

2

布局名称应该是文件的名称而不是路径,并且您永远不需要引用_Layout,因为它是默认值。

此外,如果您希望您的视图和内容页面共享相同的_Layout.cshtml页面,请将它们添加一次/Views/_Layout.cshtml/Views/Shared/_Layout.cshtml代替。

如果这是自托管 HttpListener 项目,您需要确保全部*.cshtml设置为Copy to Output DirectoryWebHostPhysicalPath 引用您的项目路径

于 2017-11-19T06:33:55.147 回答