禁用所需属性

时间:2016-03-11 13:03:55

标签: c# asp.net-mvc data-annotations required

我有一个班级:

public class ShoppingParent : Parent 
{

}

实现此类:

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类,ModelState.Valid始终为false,因为Password是必需的,但我不会使用数据填充它,因为它不需要在ShoppingParent班。

我正在尝试弄清楚如何禁用Password课程中所需的ShoppingParent,但要求Parent课程中保持此要求。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:2)

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

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; }
}