我的 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");
});
}