我有以下设置:流利的nhibernate + asp.net mvc 4.我在VS中有一个单独的项目,我所有的对象都存储在其中,这些对象直接映射到数据库。
但是,要在视图中显示来自这些对象的数据,我需要“模型”。
是否需要基于这些数据库映射的对象创建新的模型对象,还是可以仅将这些数据库对象作为模型传递给视图?(这是一个好主意吗?)
谢谢!
我认为您应该创建其他ViewModel类。如果要对显示的数据进行一些更改,则只需修改这些模型即可;您的域映射将不受某些特定“呈现”情况的影响。
另一个优点是,您可以使用格式设置属性来装饰属性,而无需在取决于您的域的将来项目中强制执行这些设置。
例如,假设您Customer
的基础项目中有以下类:
public class Customer
{
public string Name { get; set; }
public string Address { get; set; }
}
您可以在[Required]
属性上添加Name
属性以使其成为必需属性。如果对于特定项目,您还需要使该Address
属性为强制性,则可以使用另一个[Required]
属性来装饰它。如果您直接使用域模型类,则将强制Address
要求始终提供该属性,即使项目要求未对此进行说明。可以将其进一步扩展到不同的验证属性,还可以扩展到您可能希望与模型一起发送到视图的其他数据(例如复合字段)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句