我的ASP.Net MVC 4站点中有三层布局结构。我的页面引用了一个布局,该布局使用了一个超级布局。在我的超级布局中,我有这个代码...
@{
tabCount = 0;
foreach (string tabName in @ViewBag.LayoutConfiguration.LowerTabbing.Tabs) {
tabCount++;
var tabId = string.Format("BodyOfTab{0}", tabCount);
<div id="@tabId">
@RenderSection(tabId, false)
</div>
}
}
在我的页面中,我明确定义了许多像这样的部分......
@section BodyOfTab1{
<div id="detailBody1" />
}
@section BodyOfTab2{
<div id="detailBody2" />
}
@section BodyOfTab3{
<div id="detailBody3" />
}
但是我的中间布局阻止了所有这些工作,因为我似乎无法从@ViewBag.LayoutConfiguration.LowerTabbing.Tabs
自动生成所需的“转发”部分。理想情况下,我想在我的中间布局中自动生成以下内容,但在编译时不知道部分的数量......
@section BodyOfTab1{
@RenderSection("BodyOfTab1")
}
@section BodyOfTab2{
@RenderSection("BodyOfTab2")
}
@section BodyOfTab3{
@RenderSection("BodyOfTab3")
}
这有可能吗?
更新 我已经尝试了这个,但由于某种原因我现在还不太明白......
@{
DefineSection("BodyOfTab1", () =>
{
RenderSection("BodyOfTab1");
});
DefineSection("BodyOfTab2", () =>
{
RenderSection("BodyOfTab2");
});
DefineSection("BodyOfTab3", () =>
{
RenderSection("BodyOfTab3");
});
}