【问题标题】:ASP MVC standard viewsASP MVC 标准视图
【发布时间】:2012-04-25 22:10:12
【问题描述】:
ASP MVC 脚手架创建 Index、Create、Update、Delete 视图,但这在现实中是多么实用。创建、更新和删除视图似乎有很多重复的 UI 代码。让一个视图用于列表,另一个视图用于添加/编辑,并使用一些开关来适当地格式化视图以进行添加或编辑,并允许删除列表和编辑视图而不重定向到另一个视图,而不是简单地弹出,这不是更实用吗?出现某种“请确认删除...”消息?
如果有人做过类似的事情并愿意分享一些通用案例的代码 sn-ps 或 T4 脚手架模板,将不胜感激。
【问题讨论】:
标签:
asp.net-mvc
t4
asp.net-mvc-templates
【解决方案1】:
实际上,NuGet 包 MvcScaffolding 正是这样做的,它使用 CreateOrEdit 局部视图。 (See here.) 然后通过引用局部视图(分别针对不同的控制器操作)创建添加/编辑视图:
<fieldset>
@Html.Partial("_CreateOrEdit", Model)
<input type="submit" value="Create" />
</fieldset>
另一种选择是使用默认的 MVC 脚手架(在模型中使用数据注释属性定义)。
<fieldset>
@Html.EditorForModel()
<input type="submit" value="Create" />
</fieldset>
就删除而言,您始终可以在任何视图的底部(或列表中)添加第二个迷你表单:
@{ using (Html.BeginForm("Delete", "MyController", FormMethod.Post))
{
@Html.HiddenFor(model => model.id)
<input type='submit' value='Delete' />
}
}