2016-09-15 16 views
-1

特定のモデルがサブミットされた後、そのモデルの検証を実行する必要があります。MVCでModelState検証をプログラムでどのように実行するのですか?

私はValidateModel/TryValidateModelTryUpdateModel/UpdateModelがあることは知っていますが、それは十分ではありません。

モデルのモデル状態検証deepを実行する必要があります。私は個々のプロパティと内部プロパティの検証を個別に取得しようとしましたが、ModelStateエントリは明らかに必要な接頭辞を取得しません。

+0

入力キーの値のペアを見てみましたか? POSTでは、入力タグ内のすべての値がキーと値のペアとしてサーバーに送信されます。おそらくモデルステートで辞書を見てください。 – DukeDidntNukeEm

+0

私は物事がどのように行われ、私が尋ねたことは、MVCがPOSTでも行う検証を行う方法を知っています。 –

+0

なぜIValidatableObjectから継承し、モデルでValidate()を呼び出すことができません。 – Fran

答えて

0

私はValidator.TryValidateObjectValidator.TryValidatePropertyを使用しました。

これは、入力パラメータvalidationResultsにエラーを追加し、モデル状態エラーを前のフィールドから削除しながら、毎回ModelStateを設定します。

これは理想的ではありませんが、すべてのエラーが発生し、エラーごとにエラーキーを作成してリストに保存します。

最後に、モデルの状態をクリアし、すべてのエラーを保存します。できます。彼の提案に感謝@フラン。

関連する問題