MVC中的@section

在前文《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">&raquo;</span></li>
        <li>@Html.ActionLink("首页","Index","Home")<span class="divider">&raquo;</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("描述名")  //将呈现指定部分的内容
}

先判断目标页中是否要加载这些片段..再加载..

运行..通过..

原文地址:https://www.cnblogs.com/iiwen/p/4351750.html