Data Annotationsの問題の問題
-
24-10-2019 - |
質問
これらのプロパティを備えたSearchViewModelがあります。
[RegularExpression("name")]
public String SortField;
[RegularExpression("asc|desc")]
public String SortDirection;
ご覧のとおり、「名前」がこの時点でsortfieldの唯一の有効な値であり、sortdirectionの唯一の有効な値である「asc」または「desc」を望んでいます。
ただし、VALIDATEMODELは値が異なる場合にエラーをキャッチしておらず、ModelState.isValidはtrueを返します。基本的に私はあらゆる価値を提供することができ、それは常に通過します。
省略されたコントローラー法:
public ActionResult List(SearchViewModel model)
{
ValidateModel(model); // No error here
Boolean isValid = ModelState.IsValid // This is true
//...
}
私は何が間違っているのですか?
編集: これが重要かどうかはわかりませんが、カスタムModelBinderを使用しています。
解決
それらはプロパティではありません。彼らはそうです 田畑. 。バインディングと検証 それだけ プロパティに反して作業します。
ご参考までに - [RegularExpression]
また、ユーザーは入力の値を指定できません(nullに変換されます)。 null値を許可したい場合は、使用してください [Required]
に加えて [RegularExpression]
.
所属していません StackOverflow