【发布时间】:2014-03-07 16:53:47
【问题描述】:
假设我有一个 Vehicle 类和两个子类,如下所示:
public class Vehicle
{
public string Model { get; set; }
public string Color { get; set; }
}
public class Car : Vehicle
{
public string Seats { get; set; }
}
public class Truck : Vehicle
{
public string MaxLoad { get; set; }
}
我创建汽车或卡车的视图包含一个下拉列表,您可以在其中选择汽车或卡车,并根据您选择的内容将正确的表单加载到带有查询的 div 中。
我是这样实现的:
- 我创建了一个局部视图,其中包含一个表单,用于创建具有 Model、Color 和 Seats 输入的汽车。
- 另一个部分视图,其中包含用于创建具有模型、颜色和 MaxLoad 输入的卡车的表单。
-
每个表单都提交给自己的控制器方法,即:
[HttpPost] 公共 ActionResult CreateCar(汽车 newCar) { …… }
CreateTruck 也是如此。
- 我有一个 createVehicle 视图,其中包含下拉列表、一个带有 id 的空 div 和一些将汽车或卡车部分视图加载到 div 中的 jquery 代码。
现在一切正常,但如果我需要更改我的车辆模型中的某些内容,我将不得不更改每个局部视图和每个控制器方法。
那么我要问的是,在这种情况下,我该如何实施提交模型的最佳方式?
最好是:
- 我发布模型的一种控制器方法
- createVehicle 视图包含 Vehicle 属性,每个局部视图仅包含自己的附加属性。
【问题讨论】:
-
这些是 ViewModel 还是领域模型?
-
FWIW,给视图模型加上
ViewModel或VM后缀通常是个好主意,所以很明显它们不是实体。
标签: asp.net asp.net-mvc asp.net-mvc-4 razor asp.net-mvc-5