流利的验证器:如何验证字符串在另一个字段是从枚举的特定值时不为空的

发布于 2025-01-19 03:47:36 字数 794 浏览 1 评论 0原文

我需要仅在消息 type 是

我尝试使用必须必须时,并且验证在类型为其他,但是当类型为第一个时,我接收“未满足指定条件的'消息'。”,

 enum Types
 {
     First, Second, Other
 }

 class MyRequest
 {
    public string Message { get; set; }
   
    public Types Type { get; set; }
 }

 public MyRequestValidator()
 {
     RuleFor(x => x.Type)
         .IsInEnum();
     RuleFor(x => x.Message)
         .Must((model, field) =>
         {
             if (model.Type == Types.Other)
             {
                 return true;
             }

             return false;
         })
         .NotEmpty()
         .WithMessage("Message is required when type is Other")
         .MaximumLength(10);
 }

任何想法如何当另一个道具是枚举的特定值时,验证字符串?

I need to add validation for Message only when Type is Other

I tried to use Must, and validation works when type is Other, but when type is First I receive "The specified condition was not met for 'message'.",

 enum Types
 {
     First, Second, Other
 }

 class MyRequest
 {
    public string Message { get; set; }
   
    public Types Type { get; set; }
 }

 public MyRequestValidator()
 {
     RuleFor(x => x.Type)
         .IsInEnum();
     RuleFor(x => x.Message)
         .Must((model, field) =>
         {
             if (model.Type == Types.Other)
             {
                 return true;
             }

             return false;
         })
         .NotEmpty()
         .WithMessage("Message is required when type is Other")
         .MaximumLength(10);
 }

Any ideas how to validate a string when another prop is a specific value from an enum?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烂柯人 2025-01-26 03:47:36

看起来当 SaeedEsmaeelinejad 提出时解决了我的问题

 When(x => x.Type == Types.Other, () => {
                RuleFor(x => x.Message)
                    .NotEmpty()
                    .WithMessage("Message is required when type is Other")
                    .MaximumLength(10);
            });

looks like When proposed by SaeedEsmaeelinejad soled my issue

 When(x => x.Type == Types.Other, () => {
                RuleFor(x => x.Message)
                    .NotEmpty()
                    .WithMessage("Message is required when type is Other")
                    .MaximumLength(10);
            });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文