3

ModelState.IsValidは、コントローラーでfalseを返します。これは、モデルのバインド時に1つ以上のモデルエラーが見つかったことを意味します。私の質問は、エラーをどのように確認するかです。

私の特定のModelStateには6つのアイテムがあることに気づきました。私がこれらのいずれかを行おうとすると...

ModelState[0].Errors[0].ToString()
ModelState[0].Errors[0].ErrorMessage
ModelState[0].Value.AttemptedValue

このエラーが発生します:

The best overloaded method match for 'System.Web.Mvc.ModelStateDictionary.this[string]' has some invalid arguments
4

2 に答える 2

3

ModelStateへのインデクサーは文字列です(通常、問題のあるモデルのプロパティ名またはhtml要素の名前)。

ModelStateクラスのMSDNドキュメントを確認すると、Errorsコレクションがあり、エラー項目(ModelErrorインスタンス)を反復処理して、原因を確認できます。

于 2009-10-15T13:16:48.760 に答える
2

コントローラーで。

ModelState.AddModelError("username", "Bad username");

ビューで;

 <%= Html.ValidationMessage("username") %>

また

<%= Html.ValidationSummary() %>

Html.ValidationSummary() が探しているものかもしれません。

于 2009-10-15T13:21:26.477 に答える