簡體   English   中英

FluentValidation如果字符串不為空,如何檢查Length?

[英]FluentValidation how to check for Length if string is not null?

我用兩個string測試PUT

company.CurrencyCode = request.CurrencyCode ?? company.CurrencyCode;
company.CountryIso2 = request.Country ?? company.CountryIso2;

我嘗試過如下規則:

public UpdateCompanyValidator()
{
    RuleSet(ApplyTo.Put, () =>
    {
        RuleFor(r => r.CountryIso2)
              .Length(2)
              .When(x => !x.Equals(null));

        RuleFor(r => r.CurrencyCode)
              .Length(3)
              .When(x => !x.Equals(null));
    });
}

因為我不介意在這些屬性上獲取null ,但我想在屬性不為null 測試Length

當屬性可以為nullable時應用規則的最佳方法是什么,我們只想測試它是否為空?

其中一種方式是:

public class ModelValidation : AbstractValidator<Model>
{
    public ModelValidation()
    {
        RuleFor(x => x.Country).Must(x => x == null || x.Length >= 2);
    }
}

我更喜歡以下語法:

When(m => m.CountryIso2 != null,
     () => {
         RuleFor(m => m.CountryIso2)
             .Length(2);
     );

對我來說最好的語法:

RuleFor(t => t.DocumentName)
            .NotEmpty()
            .WithMessage("message")
            .DependentRules(() =>
                {
                    RuleFor(d2 => d2.DocumentName).MaximumLength(200)
                        .WithMessage(string.Format(stringLocalizer[""message""], 200));
                });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM