可能是一个愚蠢的问题。 但是没有使用Display属性指定模型中的标题违反了关注点分离原则吗?标题不应该属于视图吗?
如果没有,有人可以解释为什么它属于模型吗?
答案 0 :(得分:5)
MVC框架允许您将DataAnnotations
放在模型中,但严格说话DataAnnotations
应该放在ViewModel中,而不是放在映射到数据库的模型中。
答案 1 :(得分:2)
不,如果是 ViewModel ,则不会违反该模式。
ViewModel通常是一个简单的POCO(普通旧CLR对象) 不包含业务逻辑,主要是属性。
@Html.DisplayFor(x => x.MyProperty)
方法将查找Display属性
并使用该信息。因此,正确的方法是在视图中使用属性而不是任何类型的硬编码文本。
希望这会有所帮助
答案 2 :(得分:0)
将您的域模型与视图隔离并使用贫血域模型(http://en.wikipedia.org/wiki/Anemic_domain_model)之间存在一条界线。我个人认为可以在某些地方公开您的域模型作为视图模型的属性。
我对贫困域模型的个人感觉就是它“促进事务脚本和类似用例之间的代码重复,减少代码重用。”