Asp.net mvc 我还能做些什么来消除这些观点吗?
我复制/粘贴了这么多,我觉得我一定能做些什么来改进这段代码 或者我有没有尽可能地去看那些枯燥无味的风景 例如,我的EditPet.cshtml视图如下所示:Asp.net mvc 我还能做些什么来消除这些观点吗?,asp.net-mvc,razor,dry,Asp.net Mvc,Razor,Dry,我复制/粘贴了这么多,我觉得我一定能做些什么来改进这段代码 或者我有没有尽可能地去看那些枯燥无味的风景 例如,我的EditPet.cshtml视图如下所示: @model PetEditViewModel @using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.Partial("_ValidationSummary", ViewData.ModelState) @Html.HiddenFor(model =&
@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")
}
@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")
}
我的EditShoe.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")
}
@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种不同的型号。创建和删除视图同上。唯一不同的一行是顶部的模型声明
我所尝试/考虑的
Html.Partial()。但进一步走这条路似乎是不合理的
您是说生成的控件仅与模型中的
项属性关联吗?是的model.Item`保存要编辑的数据模型。有些虚拟机有其他属性(例如下拉选项),但大多数虚拟机没有。但是,即使直接编辑数据模型,我也会得到相同的结果。因此,我假设项
在一个视图中可能是一个类型
(例如Pet.cs
),在另一个视图中可能是另一个类型
(Shoe.cs
)。如果是这样,那么我认为你已经尽了你所能/应该做的。例如,您可以创建一个HtmlHelper
扩展方法,该方法仅使用一行代码(比如)@html.MyFormFor(m=>m)
)生成所有html,但需要有一个可读性第一的点。是的,正确。再次感谢斯蒂芬。如果你能把它转换成一个答案,我会这样做。我的评论实际上只是一个观点,不适合作为答案:)