0

如何禁用[Required]已在模型属性上设置的属性。

我尝试使用以下代码使用new关键字但不工作。

我也尝试override了关键字,但也没有用。

ChildModel使用其中的大部分属性,BaseModel而不是创建新的模型文件并编写许多类似的属性,我正在考虑做这样的事情。

public class BaseModel
{
    [Required]
    public string Address{ get; set; }
}


public class ChildModel : BaseModel
{
    public new string Address{ get; set; }    
}

任何简单的解决方案?

4

1 回答 1

2

简单地使用属性上的关键字覆盖或重新声明new并删除该属性是行不通的。我一直这样做的方式如下:

public abstract class BaseModel
{
    public abstract string Address { get; set; }
}


public class ChildModel : BaseModel
{
    [Required]
    public override string Address { get; set; }
}

public class AnotherChildModel : BaseModel
{
    //Not[Required]
    public override string Address { get; set; }
}

如果您想了解更多关于在继承期间如何处理基类属性的信息,可以阅读此线程。

于 2017-05-31T13:22:32.430 回答