【问题标题】:Disable required attribute禁用必需的属性
【发布时间】:2016-03-11 13:03:54
【问题描述】:

我有一堂课:

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 类中不需要它。

我试图弄清楚如何禁用 ShoppingParent 类中所需的 Password,但在 Parent 类中保留它。

有人知道怎么做吗?

【问题讨论】:

  • 如何将公共部分移动到接口并让两者都实现呢?继承不能做太多事情。
  • @UfukHacıoğulları 听起来不错,我已经阅读了有关接口的内容,但仍然不太了解它们,所以我认为我将很难添加一个接口:/
  • 您必须拥有 2 个不同的基类或一个通用接口。
  • 这很容易。如果您可以在帖子中包含 Parent 类中的属性,我(或其他人)可以发布示例。
  • @UfukHacıoğulları 我已经添加了属性

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


【解决方案1】:

您可以将通用属性移至接口,并让每个属性决定是否需要。

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

【讨论】:

  • 完美!谢谢
猜你喜欢
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2023-03-25
  • 2011-03-01
  • 2012-08-31
相关资源
最近更新 更多