ビューのエラー メッセージをカスタマイズしようとしていると思います。追加したものを含むエラー メッセージはModelState.AddModelError("", "error message")
、3 つの方法でカスタマイズできます。
オプション1
クラスHtml.ValidationSummary()
を介してその外観を使用およびカスタマイズします。validation-summary-errors
VS の既定の mvc プロジェクト テンプレートには、既定でそのクラスが含まれます。デフォルトの色は赤です(と思います)。ただし、そのクラスを変更することで、エラーの概要のすべての側面を実質的に制御できます。
.validation-summary-errors {
border: 5px solid red; // thick red border
color: #3904D9; // dark blue
font-size: 1.5em; // quite big fonts
font-weight: bold;
}
オプション 2
はValidationSummary
メッセージを順序なしリスト ( li
) に出力します。プロジェクトでエラー メッセージを表示する別の方法が必要な場合は、ViewDataDictionary
. 次のコードは、細い赤い境界線を持つ個別の div にエラー メッセージを書き込みます。サンプルをシンプルにするために、スタイルはインラインで記述されています。
@foreach (var item in ViewData.ModelState) {
if (item.Value.Errors.Any()) {
foreach (ModelError e in item.Value.Errors) {
<div style="border: 1px solid red;margin-bottom:5px;">
@e.ErrorMessage</div>
}
}
}
オプション 3
ビューにロジックを配置したくない場合は、htmlhelper を拡張 (またはカスタム ヘルパーを作成) できます。基本的に、カスタム htmlhelper のオプション 2 に示されているのと同じロジックを使用します。
public static class HtmlExtensions {
public static MvcHtmlString CustomValidationSummary(this HtmlHelper helper)
{
var html = string.Empty;
foreach (var item in helper.ViewData.ModelState)
{
if (item.Value.Errors.Any()) {
foreach (ModelError e in item.Value.Errors) {
html
+= "<div style='border: 1px solid red;margin-bottom:5px;'>"
+ e.ErrorMessage
+ "</div>";
}
}
}
return MvcHtmlString.Create(html);
}
}
そして、あなたが使用するのと同じ方法でそれを使用しますValidationSummary
:
@Html.CustomValidationSummary()