Asp.net mvc 向mvc中的视图添加特定错误消息

Asp.net mvc 向mvc中的视图添加特定错误消息,asp.net-mvc,validation,razor,Asp.net Mvc,Validation,Razor,是否可以向视图中的字段添加特定的错误消息? 目前,我已经对模型进行了验证,以检查字段是否为空(ValidationMessageFor),并且我正在对特定错误使用验证摘要。 我想知道的是,为摘要创建的特定错误消息是否可以替换的ValidationMessageFor 型号: [Required] public string SchoolCode { get; set; } 视图: 控制器: var schoolExists = RepositoryHelper.GetSchoolByCod

是否可以向视图中的字段添加特定的错误消息? 目前,我已经对模型进行了验证,以检查字段是否为空(ValidationMessageFor),并且我正在对特定错误使用验证摘要。 我想知道的是,为摘要创建的特定错误消息是否可以替换的ValidationMessageFor

型号:

 [Required]
 public string SchoolCode { get; set; }
视图:

控制器:

var schoolExists = RepositoryHelper.GetSchoolByCode(model.SchoolCode);
if (schoolExists == null)
{
    ModelState.AddModelError(string.Empty, @"No school exists with this code");
    return View(model);
}
if (ModelState.IsValid)
{
    //do other stuff
}

因此,如果模型状态无效,它将返回模型错误,但如果输入了错误的代码,它将在验证摘要中添加“没有学校存在此代码”。我可以用学校代码摘要错误替换学校代码模型错误吗?

您需要在
AddModelError()
方法中指定属性名称

ModelState.AddModelError("SchoolCode", "No school exists with this code");

因此,它将显示在由
@Html.ValidationMessageFor(m=>m.SchoolCode,…})标识的占位符中。
是,可以覆盖错误消息。您需要做的只是引用
ModelState.addmodeleror
方法调用中的项,并指定错误消息文本

您可以覆盖以下错误消息:

  • 如果未指定错误消息,则为默认错误消息
  • 指定的错误消息
为文本框生成的
HTML
输出如下所示:

<input
    class="input-validation-error form-control text-box single-line"
    data-val="true"
    data-val-required="Source code is required"
    id="SchoolCode"
    name="SchoolCode"
    placeholder="School Code"
    type="text"
    value="" />

我希望这有帮助。

以后请格式化您的代码,以便更好地阅读。
<input
    class="input-validation-error form-control text-box single-line"
    data-val="true"
    data-val-required="Source code is required"
    id="SchoolCode"
    name="SchoolCode"
    placeholder="School Code"
    type="text"
    value="" />
if (schoolExists == null)
{
     ModelState.AddModelError("SchoolCode", "No school exists with this code");

     return View(model);
}