首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据另一个字段的值确定所需字段

如何根据另一个字段的值确定所需字段
EN

Stack Overflow用户
提问于 2018-10-30 21:07:50
回答 1查看 1.5K关注 0票数 1

我有一个带有一些具有数据注释的公共属性的ViewModel,如下所示:

代码语言:javascript
复制
[Required]
public string PointOfContact { get; set; }

效果很好。我已经准备好了所有必要的管道,以便在验证失败时显示正确的控制格式和错误消息。

但是,我有一些字段是根据复选框的值有条件地要求的。例如:

代码语言:javascript
复制
public bool Briefing { get; set; }
public DateTime BriefingTime { get; set; }

在这种情况下,我只希望在选中绑定到简报属性的复选框时才需要BriefingTime。BriefingTime的可见性已经被确定为简报,所以当选中复选框时,我所需要的只是让它具有通常所需的行为。

有什么方法可以做到这一点吗?还是我需要编写自己的数据注释类?这样的班级会是什么样的呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 21:22:29

您可以编写自己的自定义ValidationAttribute

代码语言:javascript
复制
public class BriefingTimeRequiredAttribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        var model = (MyModel)validationContext.ObjectInstance;
        if (model.Briefing && !model.BriefingTime.HasValue)
        {
            return new ValidationResult("BriefingTime is required.");
        }
        return ValidationResult.Success;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53072933

复制
相关文章

相似问题

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