2

私の ASP.Net MVC 4 サイトには 3 層のレイアウト構造があります。私のページはレイアウトを参照しており、そのレイアウトはスーパーレイアウトを使用しています。私のスーパーレイアウトには、このコードがあります...

@{
    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