动态生成的剃刀部分

时间:2013-03-08 23:58:18

标签: asp.net-mvc asp.net-mvc-4 razor-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");
    });
}

0 个答案:

没有答案