我想知道如何在 ASP.NET MVC 4 中实现多方面的帐户设置 UI,即每个设置方面(例如常规设置、电子邮件地址...)都有一个视图,您可以在帮助下导航的标签栏。每个设置视图将共享相同的布局,并且仅在数据方面有所不同,即每个视图都有一个具有不同字段的表单。
这些模型应该能说明我的意思:
详细地说,使用 ASP.NET MVC 4 生成这些视图的最有效(DRY)方式是什么?如您所见,视图以相同的方式构建,仅在标题和表单字段方面有所不同。必须有一些简单的方法来重用视图中的公共结构,并为它们中的每一个简单地专门化它,但我不知道该怎么做。
解决方案
弗莱姆的回答让我走上了正确的轨道,但我对其进行了一些修改,特别是通过嵌套设置布局。
设置布局:
@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()