首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用asp.net核心web api验证模型依赖于bool数据类型值

如何使用asp.net核心web api验证模型依赖于bool数据类型值
EN

Stack Overflow用户
提问于 2017-04-11 11:17:57
回答 1查看 841关注 0票数 0

我已经使用asp.net核心web API创建了一个模型,我必须验证属性依赖于布尔数据类型属性值。

如果IsWaitingList属性为true,则WaitingListEncounterOrOtherEncounter属性为required属性,否则它不是必填字段。

代码语言:javascript
运行
复制
public class CenterConfiguration
    {
        public Guid Id { get; set; } = Guid.NewGuid();
        public bool? IsWaitingList { get; set; }
        [Required(ErrorMessage = "Please enter waiting list encounter or other encounter")]
        public int WaitingListEncounterOrOtherEncounter { get; set; }
    } 

如果有人知道,请让我知道。

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 15:33:21

您可以实现IValidatableObject来检查复杂的验证条件。

代码语言:javascript
运行
复制
public class CenterConfiguration : IValidatableObject {
    public Guid Id { get; set; } = Guid.NewGuid();
    public bool? IsWaitingList { get; set; }
    public int? WaitingListEncounterOrOtherEncounter { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
         if (IsWaitingList && !WaitingListEncounterOrOtherEncounter.HasValue) {
             yield return new ValidationResult(
                 "Please enter waiting list encounter or other encounter",
                 new[] { "WaitingListEncounterOrOtherEncounter" }
             );
         }
    }
}

还要注意,我将WaitingListEncounterOrOtherEncounterint更改为int?,因此您实际上可以将该值保留为空。

另请参阅How do I use IValidatableObject?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43336183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档