非常简单的问题:在严格MVC design pattern中,我们希望保持模型,视图和控制器可以让View层知道模型中定义了哪些自定义数据类?
例如:
我在视图层中有一个CarViewController,在模型层中有一个Car对象。每当模型层更改控制器对象时,"坐着"模型和视图之间的 通知CarViewController,并在我当前的实现中传递更新的汽车数据的副本作为Car类的实例。 这是正确的吗?
我的直觉本能说不,因为我不希望视图层知道模型对象的细节。它不是严格的脱钩。但是,如果我传递特定值而不是传递自定义数据模型,我需要坚持标准/原始值(例如,int作为轮数),它可能需要更多编码。
我是否正确理解了MVC?有没有理由为什么视图不应该知道模型层的自定义类?
答案 0 :(得分:0)
如果我正确理解您的问题,我会说您的观点需要在大多数情况下了解Car对象的详细信息。您可以这样使用元数据:
型号:
public class Car
{
[Display(Name = "Number of wheels")]
public int Wheels { get; set; }
}
查看: @model Namespace.Models.Car
@* This will display whatever your [Display(Name="Value")] decorator defines
as a display name, also the editor will respect the data type decorator. *@
@Html.LabelFor(m => m.Wheels)
@Html.EditorFor(m => m.Wheels)
在这种情况下,如果基本上传递一个原语,那么模型的所有元数据都将丢失。