2

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

0 回答 0