我还能做些什么来干掉这些观点吗?

时间:2016-02-12 00:33:22

标签: asp.net-mvc razor dry

我复制/粘贴这么多,我觉得我必须做些什么来改进这段代码。

或者我是否已经尽可能地采取DRY剃刀观点?

例如,我的EditPet.cshtml视图如下所示:

@model PetEditViewModel

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.Partial("_ValidationSummary", ViewData.ModelState)
    @Html.HiddenFor(model => model.Item.ID)
    @Html.EditorFor(m => m.Item)
    @Html.Partial("_SaveOrCancelButtons")
}

我的EditShoe.cshtml视图如下所示:

@model ShoeEditViewModel

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.Partial("_ValidationSummary", ViewData.ModelState)
    @Html.HiddenFor(model => model.Item.ID)
    @Html.EditorFor(m => m.Item)
    @Html.Partial("_SaveOrCancelButtons")
}

依此类推...适用于约30种不同型号。同上创建和删除视图。唯一不同的是顶部的模型声明。

我尝试/考虑的内容

  1. 使用Html.Partial()帮助我避免了相当多的重复。但是进一步采取这条路线似乎是不合理的。

  2. 我已经研究过通用剃须刀视图了,但这已经是recommended against了,我见过的任何解决方案对我来说都显得过于复杂。

  3. 我考虑的第三种可能性是使用模板并自动生成这些视图。但我宁愿不采取这种方法,因为他们仍然需要维护(或每次重建)。

  4. 最后我考虑将重复的代码转换为editortemplate。但我认为将复制从一个地方转移到另一个地方没有任何好处。

0 个答案:

没有答案