Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 ViewModel中的DataAnnotations不覆盖DomainModel属性_Asp.net Mvc 4_Viewmodel_Data Annotations_Domain Model - Fatal编程技术网

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呢?