Asp.net mvc 4 ViewModel中的DataAnnotations不覆盖DomainModel属性
如何在继承域模型而不重写其属性的视图模型中添加Asp.net mvc 4 ViewModel中的DataAnnotations不覆盖DomainModel属性,asp.net-mvc-4,viewmodel,data-annotations,domain-model,Asp.net Mvc 4,Viewmodel,Data Annotations,Domain Model,如何在继承域模型而不重写其属性的视图模型中添加DataAnnotation 用户域模型 public class User{ public string UserName { get; set; } public string Password { get; set; } } 寄存器查看模型 public class Register : User{ [Required] public string Password { get; set; } } 在这里,是否有一种方
DataAnnotation
用户
域模型
public class User{
public string UserName { get; set; }
public string Password { get; set; }
}
寄存器
查看模型
public class Register : User{
[Required]
public string Password { get; set; }
}
在这里,是否有一种方法可以将
数据注释
添加到用户名
和密码
,而不在注册表
视图模型中保存这些属性?您可以创建customrequired属性并将其继承属性设置为false
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field
| AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
public class CustomRequiredAttribute : RequiredAttribute
{
}
因此,您的用户域模型如下所示:
public class User{
[CustomRequired]
public string UserName { get; set; }
[CustomRequired]
public string Password { get; set; }
}
现在您的注册模式如下所示
public class Register : User
{
public string Password{get;set;}
}
因此,现在所需的属性将不会被子类继承,如果您深入挖掘required
属性,您可以找到inherited
布尔属性的定义,如下所示:
总结:
获取或设置一个布尔值,该值指示所指示的属性是否可以由派生类和重写成员继承
返回:
如果属性可以由派生类和重写成员继承,则为true;否则,错误。默认值为true
我认为不继承它们是不可能的,为什么不在用户类上添加DataAnnotation呢?