use*_*351 6 c# asp.net-mvc fluentvalidation
我正在使用mvc.所以我想验证用户输入的数字是7位数.
所以我写了一堂课.
public class StduentValidator : AbstractValidator<graduandModel>
{
public StduentValidator(ILocalizationService localizationService)
{
RuleFor(x => x.student_id).Equal(7)
.WithMessage(localizationService
.GetResource("Hire.graduand.Fields.student_id.Required"));
}
Run Code Online (Sandbox Code Playgroud)
但它没有用.如何验证7位数字?
Eri*_*sch 18
由于您使用的是FluentValidation,因此您希望使用.Matches验证程序来执行正则表达式匹配.
RuleFor(x => x.student_id).Matches("^\d{7}$")....
Run Code Online (Sandbox Code Playgroud)
另一个选择是做这样的事情(如果student_id是一个数字):
RuleFor(x => x.student_id).Must(x => x > 999999 && x < 10000000)...
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用GreaterThan和LessThan验证器,但上面更容易阅读.另请注意,如果数字类似于0000001,那么上面的内容将不起作用,您必须将其转换为7位数的字符串并使用以下技术.
如果student_id是一个字符串,那么这样的事情:
int i = 0;
RuleFor(x => x.student_id).Length(7,7).Must(x => int.TryParse(x, out i))...
Run Code Online (Sandbox Code Playgroud)