gpt4 book ai didi

asp.net-mvc - 在嵌套内容区域上使用 _ViewStart

转载 作者:行者123 更新时间:2023-12-02 03:48:04 26 4
gpt4 key购买 nike

我有一个 _ViewStart 定义我的项目的主布局(页眉、页脚)。

在这个项目中,我有几个领域。每个区域都有相同的页眉和页脚,以及自己的侧面菜单。为此,我在该区域的根目录上创建了一个 _ViewStart。这是(简化的)代码:

/Views/_ViewStart.cshtml

@{
Layout = "~/Views/Shared/_Layout.cshtml";
}

/Views/Shared/_Layout.cshtml

    <html>
<div>
//header
</div>
<div>
@RenderBody
</div>
</html>

区域 Foo ->/Areas/Foo/Views/_ViewStart.cshtml

@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="row">
<div class="sidemenu">
//default sidemenu for this area
</div>
<div>
@RenderBody()
</div>
</div>

页面/Areas/Foo/Views/Bar/Index.cshtml 将不会呈现,并且出现此错误:

CS0103:当前上下文中不存在名称“RenderBody”

如何实现这种母版页嵌套?

最佳答案

我不想回答我自己的问题,但事情是这样的:

如果您需要 RenderBody,则不能直接在您所在区域的 _ViewStart 上引用站点的根 _ViewStart。

所以解决办法是:

/Views/_ViewStart.cshtml引用/Views/Shared/_MainLayout.cshtml

/Areas/Foo/Views/_ViewStart.cshtml引用/Areas/Foo/Views/Shared/_AreaLayout.cshtml

/Areas/Foo/Views/Shared/_AreaLayout.cshtml引用/Views/Shared/_MainLayout.cshtml

就是这样。您必须使用“Shared”文件夹才能使用“RenderBody()”方法。

关于asp.net-mvc - 在嵌套内容区域上使用 _ViewStart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9317030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com