Servicestack在Razor内容页面中包含_Layout.cshtml

时间:2017-11-19 05:48:40

标签: asp.net razor servicestack servicestack-razor

如何在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;
&#13;
&#13;

第二个文件是Product.cshtml

&#13;
&#13;
@inherits ServiceStack.Razor.ViewPage

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

}

    <h1>Product Page</h1>
&#13;
&#13;
&#13;

当我致电http://localhost:6000/product

结果是在浏览器中

Product Page

但它应该是

Main Layout

Product Page

为什么? 问题是什么?

1 个答案:

答案 0 :(得分:2)

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

此外,如果您希望自己的观看次数和内容页面共享相同的_Layout.cshtml页面,请将其添加到/Views/_Layout.cshtml/Views/Shared/_Layout.cshtml

如果这是自托管HttpListener项目,您需要确保所有*.cshtml设置为复制到输出目录WebHostPhysicalPath references your project path