禁用必需的属性

Disable required attribute

我有一个 class:

public class ShoppingParent : Parent 
{

}

实现这个 class:

public class Parent 
{

  public string Firstname { get; set;}

  public string Lastname { get; set;}

  public string Address { get; set;}

  public string Town { get; set;}

  [Required]
  public string Password { get; set;}

}

因为 ShoppingCart 实现了 Parent class,所以 ModelState.Valid 总是错误的,因为 Password 是必需的,但我没有填充它ShoppingParent class.

中不需要的数据

我正在尝试找出如何禁用 ShoppingParent class 中所需的 Password 但将其保留在 Parent class 中.

有人知道怎么做吗?

您可以将公共属性移动到一个界面,并让每个属性决定是否需要它。

public interface IParent
{
    string Firstname { get; set; }
    string Lastname { get; set; }
    string Address { get; set; }
    string Town { get; set; }
    string Password { get; set; }
}

public class ShoppingParent : IParent
{
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public string Address { get; set; }
    public string Town { get; set; }
    public string Password { get; set; }
}


public class PasswordRequiredParent : IParent
{
    public string Firstname { get; set; }
    public string Lastname { get; set; }
    public string Address { get; set; }
    public string Town { get; set; }
    [Required]
    public string Password { get; set; }
}