asp.net mvc3关于section 的一个小bug
2011-08-18 16:10 shaofeng 阅读(1984) 评论(7) 编辑 收藏 举报首先我们建一个_layoutA.cshtml
内容如下
1 @{
2 ViewBag.Title = "_LayoutA.cshtml";
3 Layout = null;
4 }
5 @RenderSection("Header", false)
2 ViewBag.Title = "_LayoutA.cshtml";
3 Layout = null;
4 }
5 @RenderSection("Header", false)
6 @RenderBody()
再建一个子页面 _LayoutAChild.cshtml
内容如下
1 @{
2 ViewBag.Title = "ViewPage1";
3 Layout = "~/Views/Shared/_LayoutA.cshtml";
2 ViewBag.Title = "ViewPage1";
3 Layout = "~/Views/Shared/_LayoutA.cshtml";
4 }
5 childpage
6 @RenderBody()
最后我们建一个最终显示页面 Detail.cshtml
1 @{
2 Layout ="~/Views/Shared/_LayoutAChild.cshtml";
3 }
4@section Header
5{
6 头信息
7 }
运行调试,这个时候问题出来了
以下各节已定义,但尚未为布局页“~/Views/Shared/_LayoutAChild.cshtml”呈现:“Header”
说明他只能找到父布局页的section,再上一级就无法找到了,然后我们怎么解决呢?
我们再回到_LayoutAChild.cshtml页面,增加如下信息
1 @section Header
2{
3 @if (IsSectionDefined("Header"))
4 {
5 @RenderSection("Header")
6 }
7}
调用父section的时候再调用
RenderSection这个节点,这个时候,问题就解决了。