如何在web api中禁用模型中属性的必需属性?

时间:2017-05-31 12:56:44

标签: c# asp.net-web-api data-annotations modelmetadata

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

我使用new关键字尝试使用以下代码,但无效。

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

ChildModel使用BaseModel的大部分属性,而不是创建新的模型文件,并编写许多类似的属性,我想这样做。

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


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

任何简单的解决方案?

1 个答案:

答案 0 :(得分:1)

简单地覆盖或重新声明使用属性上的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; }
}

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