質問

これらのプロパティを備えた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].

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top