Asp.net mvc ASP MVC标准视图

Asp.net mvc ASP MVC标准视图,asp.net-mvc,t4,asp.net-mvc-templates,Asp.net Mvc,T4,Asp.net Mvc Templates,ASP MVC脚手架创建索引、创建、更新和删除视图,但这在现实中有多实际。在Create、Update和Delete视图中似乎有很多重复的UI代码。一个视图用于列表,另一个视图用于添加/编辑,并使用一些开关对视图进行适当的格式设置以进行添加或编辑,并允许删除列表和编辑视图而不重定向到另一个视图,而只是弹出某种“请确认删除…”消息,这不是更实际吗 如果有人做过类似的事情,并且愿意为一般情况共享一些代码片段或T4脚手架模板,我们将不胜感激。实际上,NuGet软件包MvcScaffolding正是这样

ASP MVC脚手架创建索引、创建、更新和删除视图,但这在现实中有多实际。在Create、Update和Delete视图中似乎有很多重复的UI代码。一个视图用于列表,另一个视图用于添加/编辑,并使用一些开关对视图进行适当的格式设置以进行添加或编辑,并允许删除列表和编辑视图而不重定向到另一个视图,而只是弹出某种“请确认删除…”消息,这不是更实际吗


如果有人做过类似的事情,并且愿意为一般情况共享一些代码片段或T4脚手架模板,我们将不胜感激。

实际上,NuGet软件包MvcScaffolding正是这样做的,它使用了CreateOrEdit局部视图。()然后通过引用局部视图(分别针对不同的控制器操作)创建添加/编辑视图:


@Html.Partial(“_CreateOrEdit”,Model)
另一种选择是使用默认的MVC支架(如使用数据注释属性的模型中定义的)


@Html.EditorForModel()
至于删除,您始终可以在任何视图的底部(或列表中)添加第二个小表单:

@{使用(Html.BeginForm(“Delete”,“MyController”,FormMethod.Post))
{
@Html.HiddenFor(model=>model.id)
}
}
<fieldset>
    @Html.Partial("_CreateOrEdit", Model)
    <input type="submit" value="Create" />
</fieldset>
<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' />
    }
}