【问题标题】:How can I disable required attribute on a property in a model in web api?如何在 web api 中禁用模型中属性的必需属性?
【发布时间】:2017-05-31 12:56:43
【问题描述】:

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

我使用new 关键字尝试了以下代码,但没有工作。

我也试过override关键字也没有用。

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

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


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

任何简单的解决方案?

【问题讨论】:

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


【解决方案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 线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多