2011-10-17 15 views
5

MVCページの1つに強く型付けされたajax呼び出し(POST)があります。クライアント側の検証を試してみたいと思うのではなく、クライアント側で表示する要約はありませんが、モデル上にいくつかのデータ注釈を投げてコントローラ上で検証したいと思います。検証に失敗した場合は、JSONプロパティとして検証サマリーにあった内容を返信したいので、エラーメッセージとしてダイアログボックスに表示することができます。コントローラーの検証概要を参照

コントローラの検証要約のテキストをJsonResponseに提供するにはどうすればよいですか?

答えて

8

エラーを取得する場合は、コントローラからすべてのエラーを取得するには、単にModelState.Errorsを使用します。そこからJSONレスポンスを好きなように作成することができます:

var response = new 
        { 
         isValid = ModelState.IsValid, 
         errors = ModelState 
         .SelectMany(ms => ms.Value.Errors) 
         .Select(ms => ms.ErrorMessage) 
        }; 
return Json(response); 
+0

ありがとう、それは私が探していたものです。 –

関連する問題