次のような文字列を使用して、検証サマリーのタイトルをフォーマットしたいと思います。
"There are {0} errors on this page."
コントローラでエラーを実行してデータの表示に追加せずに、エラーの数を確認するにはどうすればよいですか?
次のような文字列を使用して、検証サマリーのタイトルをフォーマットしたいと思います。
"There are {0} errors on this page."
コントローラでエラーを実行してデータの表示に追加せずに、エラーの数を確認するにはどうすればよいですか?
私はあなたが視点から意味していると思います。以下はテストされていません。
ViewData.ModelState.Values.Where( v => v.Errors.Count != 0 ).Count()
ASP.NET MVC 1.0バージョンのを参照している場合はIEnumerable<RuleViolation>
、次の方法でカウントを取得できます。
var errorCount = GetRuleViolations().Count();
ビューデータに入れずにそのカウントをビューに取り込むには、エラーカウントを含むテキストを返すValidationSummaryHtmlHelper拡張メソッドのオーバーロードを作成できます。これにより、extensionメソッド内からエラーカウントにアクセスできます。
元のValidationSummary拡張メソッドのコードを表示するには、Reflectorを使用してコードを逆コンパイルするか、CodeplexからASP.NETMVCソースをダウンロードします。
ASP.NET MVC 2.0では、検証メカニズムが大幅に変更されていることに注意してください。
より簡単な方法を使用することもできます
@if (ViewData.ModelState.ErrorCount > 0)
{
...
}