使用 C# FluentValidation Rulefor() for MVC3 检查组合是否具有值的正确方法是什么?
我有一组 3 个组合框的出生日期
@Html.DatePickerDropDowns(Html.FieldNameFor(x => x.DateOfBirthDay),
Html.FieldNameFor(x => x.DateOfBirthMonth),
Html.FieldNameFor(x => x.DateOfBirthYear),
DateTime.Now.Year - 110,
DateTime.Now.Year,
Model.DateOfBirthDay,
Model.DateOfBirthMonth,
Model.DateOfBirthYear)
@Html.ValidationMessageFor(model => model.DateOfBirthDay)
@Html.ValidationMessageFor(model => model.DateOfBirthMonth)
@Html.ValidationMessageFor(model => model.DateOfBirthYear)
每个组合都显示“DAY”或“Month”或“Year”
,并且它们都有各自的相关列表。
所以我想检查用户是否选择了 0..31 中的值之一。
RuleFor(x => x.DateOfBirthDay).NotEqual(0).WithMessage("Day is required");
RuleFor(x => x.DateOfBirthMonth).NotEqual(0).WithMessage("Month is required");
RuleFor(x => x.DateOfBirthYear).NotEqual(0).WithMessage("Year is required");
例如,DateOfBirthDay HTML 输出组合如下所示:
"0" - Day
"1" - 1
"2" - 2
...till 31
当我运行 ModelState.IsValid 时,它不会发现用户没有触摸任何组合值的事实,将索引保留为“0”。
先谢谢了。