7

次のような文字列を使用して、検証サマリーのタイトルをフォーマットしたいと思います。

"There are {0} errors on this page."

コントローラでエラーを実行してデータの表示に追加せずに、エラーの数を確認するにはどうすればよいですか?

4

3 に答える 3

18

私はあなたが視点から意味していると思います。以下はテストされていません。

ViewData.ModelState.Values.Where( v => v.Errors.Count != 0 ).Count()
于 2010-02-10T17:36:32.233 に答える
2

ASP.NET MVC 1.0バージョンのを参照している場合はIEnumerable<RuleViolation>、次の方法でカウントを取得できます。

var errorCount = GetRuleViolations().Count();

ビューデータに入れずにそのカウントをビューに取り込むには、エラーカウントを含むテキストを返すValidationSummaryHtmlHelper拡張メソッドのオーバーロードを作成できます。これにより、extensionメソッド内からエラーカウントにアクセスできます。

元のValidationSummary拡張メソッドのコードを表示するには、Reflectorを使用してコードを逆コンパイルするか、CodeplexからASP.NETMVCソースをダウンロードします。

ASP.NET MVC 2.0では、検証メカニズムが大幅に変更されていることに注意してください。

于 2010-02-10T17:31:21.017 に答える
1

より簡単な方法を使用することもできます

@if (ViewData.ModelState.ErrorCount > 0)
{
  ...
}
于 2020-01-17T10:53:53.397 に答える