报错:
以下各节已定义,但尚未为布局页“~/Views/Shared/Layout2.cshtml”呈现:“BreadCrumb; TailJS”。
后来发现在Index.cshtml中..出现了这些片段
@section BreadCrumb { <ul class="breadcrumb"> <li><i class="icon-home"></i>控制台<span class="divider">»</span></li> <li>@Html.ActionLink("首页","Index","Home")<span class="divider">»</span></li> <li>@Html.ActionLink("数据概述","Index","Home")</li> </ul> } @section TailJS { <script src="/Content/creative/plugins/pnotify/jquery.pnotify.min.js"></script> }
经过查询知道..在目标页中的 @section 所描述的代码片段..是要加载到母版页中的 @RenderSection("描述名") 位置上的..
而我在新建的母版页中并没有这般接收..所以报错 未为布局页呈现..
那么就需要在母版页的对应位置上写入
@if (IsSectionDefined("描述名")) //该值指示是否在页中定义了指定部分 { @RenderSection("描述名") //将呈现指定部分的内容 }
先判断目标页中是否要加载这些片段..再加载..
运行..通过..
另:
可以定义一个渲染块,这个渲染块可以在LayoutPage里面引用,使用Html.RenderSection("section名称"),可以指定一个bool参数指定如果Content页没有定义section的时候是否忽略或者报错,如Html.RenderSection("seciton名称",false)指示忽略未定义的section