数据注释属性的一个子集

我一直在阅读Data Annotations(例如Scott Guthrie的博客文章),我对在一个地方使用验证逻辑的概念感到兴奋。

有没有人能够在提示用户输入与给定类关联的属性的子集时成功地使用该技术?

例如(伪代码)...

public class Person
{
  [Required]
  public string Name

  [Required]
  public string Email
}

然后让我们假设你有一个视图只显示名称的表单。 该视图的HttpPost控制器中的ModelState.IsValid的值将始终为false,因为需要并缺少电子邮件。

我曾考虑过使用单独的模型,一个用于只需要Name的部分,另一个用于需要Name和Email的部分,但是我打破了DRY的原则,因为我将Name验证逻辑放在两个地方。

有什么建议么? 可以通过这种方式获得数据注释吗? 我应该只有两个单独的课程吗? 也许一个CustomValidationAttribute检查一个标志,然后再确定是否需要电子邮件?


每个视图都应该有它自己的视图模型。 有时您可以重新使用一些现有的视图模型 - 这是您无法使用的时间。

我只会创建自定义属性,如果这些属性是在一种形式,有时两者都是必需的,有时只有一个是必需的。 如果你有单独的视图,我会制作另一个视图模型。

链接地址: http://www.djcxy.com/p/9693.html

上一篇: Data Annotations for a subset of properties

下一篇: Custom Validation Attribute is not called ASP.NET MVC