【发布时间】:2012-12-11 22:11:29
【问题描述】:
我正在做一个项目,我们有多个 UI(视图)模型,带有用于验证的 DataAnnotations 属性,主要用于输入,例如必填字段、长度、正则表达式等):
[Required]
public int Order { get; set; }
[Required]
[MaxLength(150)]
public string Title { get; set; }
控制器在将对象交给服务层之前检查 ModelState 以确保对象有效。
现在,服务层还验证对象以适应未来可能需要新控制器支持其他输出格式或其他实用程序来批量导入对象的更改。
我的问题是:知道在控制器处理 UI 模型和服务层处理业务对象的地方应该分离关注点,因此,我不想传递 UI 模型对象对于服务层,在 UI 模型对象中重用验证规则的首选方式是什么?还是应该使用服务层中的代码来复制它们?还是应该将DataAnnotations 也添加到业务对象中?
我首先使用 EF 模型,所以我没有看到将这些注释添加到自动生成的 POCO 的简单方法。
【问题讨论】: