有人可以在下面解释我的代码吗?如果我理解正确,它会告诉我如果定义了Breadcrumb部分,则渲染此部分。但它已经在If子句本身内部定义,它是如何工作的?此代码来自NopCommerce _ColumnsOne.cshtml。我实现了一个插件,它在默认主题上运行正常,但它会在另一个主题上给我一个错误,告诉我"以下部分已经定义但尚未针对布局页面进行渲染"〜/主题/noproot/Views/Shared/_ColumnsOne.cshtml":" Breadcrumb"。"
在另一个主题_ColumnsOne.cshtml中,这一行确实不存在。所以它看起来像下面。我很困惑为什么当我在其他主题上时,它试图从默认主题渲染这个共享视图。
标准主题:
@{
Layout = "~/Views/Shared/_Root.cshtml";
}
@if (IsSectionDefined("Breadcrumb"))
{
@section Breadcrumb {
@RenderSection("Breadcrumb")
}
}
<div class="center-1">
@Html.Widget("main_column_before")
@RenderBody()
@Html.Widget("main_column_after")
</div>
其他主题;
@{
Layout = "~/Views/Shared/_Root.cshtml";
}
<div class="">
@Html.Widget("main_column_before")
@RenderBody()
@Html.Widget("main_column_after")
</div>