在前文《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("描述名") //將呈現指定部分的內容 }
先判斷目標頁中是否要加載這些片段..再加載..
運行..通過..