私の 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");
});
}