【发布时间】:2014-03-06 16:51:48
【问题描述】:
我在 Shared/_Header.cshtml 文件中有一些简单的 <header> 内容。
My Shared/_Layout.cshtml 通过调用插入该代码
@Html.Partial("_Header")
到目前为止效果很好。
现在我有一些看法,除了通过@RenderBody()正常输出外,还应该在标题的特定位置添加一些图标。
我在几个视图中使用@RenderSection()创建侧边栏等。
现在我的想法是在我的视图中创建一个部分(例如 Home/Details.cshtml)并向 _Header 添加一个 RenderSection 调用。 Layout 会调用 Header,然后 header 会查看该部分是否存在并调用它。
但这似乎不起作用。我收到以下错误/异常:
The file "~/Views/Shared/_Header.cshtml" cannot be requested directly because it calls the "RenderSection" method.
我的错误在哪里?我知道我可以在一个部分内“嵌套”一个部分调用就好了。这段代码可以很好地告诉布局侧边栏使用什么文件:
@section Sidebar{
@Html.Partial("_SidebarDetails")
}
反过来不行吗?
我需要在视图中定义一个 HTML 块,然后将其放入布局调用的部分内部的预定义位置。
请帮助我了解如何执行此操作。
【问题讨论】:
标签: c# asp.net asp.net-mvc razor partial-views