MVC3 の C# FluentValidation Rulefor() を使用して Combo に値があるかどうかを確認する正しい方法は何ですか??
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)
各コンボには「日」または「月」または「年」が表示され
、それぞれに関連リストがあります。
したがって、ユーザーが 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」のままになります。
ありがとうございます。