只应验证最小/最大长度

Evg*_*vin 3 asp.net-mvc fluentvalidation asp.net-mvc-3 asp.net-mvc-4

我在ASP.NET MVC 4项目中使用FluentValidation框架进行服务器端和客户端验证.

是否有原生(非黑客)方式来验证字符串长度只有最大长度,或只有最小长度?

例如这样:

var isMinLengthOnly = true;
var minLength = 10;
RuleFor(m => m.Name)
    .NotEmpty().WithMessage("Name required")
    .Length(minLength, isMinLengthOnly);
Run Code Online (Sandbox Code Playgroud)

默认错误消息模板应该不是

'Name' must be between 10 and 99999999 characters. You entered 251 characters.

'Name' must be longer 10 characters. You entered 251 characters.

并且应该支持客户端属性,例如黑客RuleFor(m => m.Name.Length).GreaterThanOrEqual(minLength)(不确定它是否有效)不适用.

sre*_*ree 10

您可以使用

RuleFor(x => x.ProductName).NotEmpty().WithMessage("Name required")
            .Length(10);
Run Code Online (Sandbox Code Playgroud)

得到消息

'Name' must be longer 10 characters. You entered 251 characters.
Run Code Online (Sandbox Code Playgroud)

如果你想检查最小和最大长度

RuleFor(x => x.Name).NotEmpty().WithMessage("Name required")
                    .Must(x => x.Length > 10 && x.Length < 15)
                    .WithMessage("Name should be between 10 and 15 chars");
Run Code Online (Sandbox Code Playgroud)