Bre*_*ogt 4 validation asp.net-mvc fluentvalidation asp.net-mvc-3
我在ASP.NET MVC 3应用程序中使用FluentValidation.
我的视图模型中有一个MaxNumberTeamMembers属性:
/// <summary>
/// Gets or sets the maximum number of team members.
/// </summary>
public int MaxNumberTeamMembers { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想知道以下规则集是否可行:
上面的规则集会是什么样的?
我有以下内容,但如果我输入0,它在GreaterThan部分不起作用:
RuleFor(x => x.MaxNumberTeamMembers)
.NotEmpty()
.WithMessage("Max. number of team members is required")
.GreaterThan(0)
.WithMessage("Max. number of team members must be greater than 0");
Run Code Online (Sandbox Code Playgroud)
更新2011-02-14:
RuleFor(x => x.MinNumberCharactersCitation)
.NotNull()
.WithMessage("Min. number of characters for citation is required")
.GreaterThanOrEqualTo(1)
.WithMessage("Min. number of characters for citation must be greater than or equal to 1")
.LessThanOrEqualTo(x => x.MaxNumberCharactersCitation)
.WithMessage("Min. number of characters must be less than or equal to max. number of characters");
Run Code Online (Sandbox Code Playgroud)
如果要处理空的情况,则需要在模型上使用可为空的整数,否则它是默认的模型绑定程序,它会在尝试将空字符串解析为不可为空的整数时自动添加验证错误:
public int? MaxNumberTeamMembers { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后您可以在此属性上具有以下验证规则:
RuleFor(x => x.MaxNumberTeamMembers)
.NotEmpty()
.WithMessage("Max. number of team members is required")
.Must(x => x.Value > 0)
.When(x => x.MaxNumberTeamMembers != null)
.WithMessage("Max. number of team members must be greater than 0");
Run Code Online (Sandbox Code Playgroud)
更新:
以下适用于最新版本的FluentValidation:
RuleFor(x => x.MaxNumberTeamMembers)
.NotNull()
.WithMessage("Max. number of team members is required")
.GreaterThan(0)
.WithMessage("Max. number of team members must be greater than 0");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12803 次 |
最近记录: |