在前文《MVC中 _ViewStart _Layout Index三个页面中的加载顺序》 中另外指定母版页 Layout.cshtml时...遇到了这个问题..
报错:
以下各节已定义,但尚未为布局页“~/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("描述名") //将呈现指定部分的内容 }
先判断目标页中是否要加载这些片段..再加载..
运行..通过..