ASP.NET MVC ModelMetadata - 当我们将属性描述为模型上的UI时,我们是否违反了关注点的分离?

dev*_*per 7 asp.net-mvc modelmetadata

根据这篇博客文章 "ModelMetadata对象是使用从属性获取的数据构建的,主要来自System.ComponentModel和System.ComponentModel.DataAnnotations命名空间."

通过将UI辅助属性放在Model对象(DisplayFormatUIHint)上,我们不是在耦合Model和View吗?

AJC*_*AJC 9

我相信是这样.就个人而言,我保持我的模型完全不可知,我编写了ViewModels,它将在我的View中表示我的模型.然后将所有注释分配给这些ViewModel.

我认为违规是因为这限制了您重用模型的能力,因为您基本上是在模型中定义视图行为.

  • 确切地说,这是我认为更清洁,更可扩展的东西.首先,对ViewModel进行编码的前景似乎是额外的工作,但它确实值得.更重要的是,如果您考虑到您查看的模型可能与您的商业模式不同. (2认同)