2013-03-14 14 views
7

私はtelerik mvc gridを使用しています。私のテーブルでは、フィールドに固有のキーが定義されています。そしてコントローラでは、try ... catch DbUpdateExceptionを使ってエラーをキャッチしています。ModelState.AddModelErrorがメッセージを表示していません

catchブロック私はエラーを処理し、エラーメッセージを表示したい。したがって、次の行を使用して、

ModelState.AddModelError("PROGRAM_ID", "Access for this program already exists."); 
return View(); 

これはエラーメッセージを表示していません。どんな考え?

+0

あなたも、あなたのモデルに名前「PROGRAM_ID」との性質を持っているのですか? ダーリン –

答えて

10

は、あなたが同じキーで、あなたのビューでValidationMessageに対応していることを確認してください:

@Html.ValidationMessage("PROGRAM_ID") 
+0

で示唆されているように検証ヘルパーコールを持っていることを確認してくださいが、私はtelerik mvcグリッドとインライン追加/編集モードを使用しています –

+0

ああ、あなたは間違ったキーにモデルエラーを追加していると思います。おそらくそれらのIDの配列があります。 'ModelState.AddModelError(" SomeCollection [2] .PROGRAM_ID "、"このプログラムのアクセスは既に存在します。 ");'のようなものです。もちろんこれはあなたのモデルによって異なります。 –

+0

いいえ。私はダブルチェック...プロパティ名は適切であり、その単一値フィールドも配列ではありません。 –

7

にValidationSummaryは唯一のキーとしてString.EmptyのためModelErrorsが表示されます。エラーはあなたにValidationSummaryにModelState.AddModelErrorを追加表示のために、コードを変更するには:

ModelState.AddModelError(string.Empty, "Access for this program already exists."); 
関連する問題