ASP.NET MVC 4 で多面的なアカウント設定 UI を実装する方法を考えています。つまり、各設定ファセット (一般設定、電子メール アドレスなど) ごとに 1 つのビューがあり、ヘルプを使用して間を移動します。タブバーの。各設定ビューは同じレイアウトを共有し、データのみが異なります。つまり、各ビューには異なるフィールドを持つフォームがあります。
これらのモックアップは、私が何を意味するかを示しているはずです:
詳しく説明すると、ASP.NET MVC 4 でこれらのビューを生成する最も効率的な (DRY) 方法は何ですか? ご覧のとおり、ビューは同じ方法で構築されており、タイトルとフォームのフィールドのみが異なります。ビューで共通の構造を再利用し、それぞれに特化する簡単な方法が必要ですが、その方法がわかりません。
ソリューション
flemの答えは私を正しい軌道に乗せましたが、特に設定レイアウトをネストすることで、少し修正しました。
設定レイアウト:
@model SettingsModelBase
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = string.Format("Settings - {0}", ViewBag.SettingsSection);
}
<h1>@Model.SelectedPage.ToString()</h1>
<div class="account-section">
@using (Html.BeginForm())
{
@RenderBody()
<input type="submit" value="Update" />
<input type="reset" value="Cancel" />
}
</div>
個人設定ビュー:
@model PersonalSettingsModel
@{
Layout = "_SettingsLayout.cshtml";
ViewBag.SettingsSection = "Account";
}
@Html.EditorForModel()