MVC不同于所需注释的错误

本文关键字:错误 注释 不同于 MVC | 更新日期: 2023-09-27 18:24:28

我有一个名为Address的类,比如:

class Address
{
    [Required(ErrorMessage = "AD is required.")]
    public string AD{get; set;
}

在我的模型中,我有两个类型为Address的成员(HomeAddressWorkAddress),在我的视图中,我呈现两个局部视图,每个视图都包含一个地址。如果我的模型无效,我想显示两个错误,如:"Home AD is required"或"Work AD is required"。是否可以使用单个类实现这一点,而无需创建自定义验证器?

编辑。我需要从ModelState中获取错误,所以我不能使用@Html.ValidationMessageFor,因为我需要在一个特殊的容器中显示我的错误

MVC不同于所需注释的错误

这里可能是您想要的:

public ActionResult HomeAction(Address model)
{
   if (string.IsNullOrEmpty(model.AD))
   {
      ModelState.AddModelError(string.Empty, "Home AD is required");
      return View(model);
   }
   // model.AD is valid here...
   return View();
}
public ActionResult WorkAction(Address model)
{
   if (string.IsNullOrEmpty(model.AD))
   {
      ModelState.AddModelError(string.Empty, "Work AD is required");
      return View(model);
   }
   // model.AD is valid here...
   return View();
}

或者在提交之前使用jQuery进行检查:

视图中:

@Html.ValidationMessageFor(m => m.AD, "", new { @class = "text-danger" })
var ad = $.trim($('#AD').val());
if (ad.length == 0) {
   // _HomePartialView
   $('span[data-valmsg-for="AD"]').text('Home AD is invalid');
   // _WorkPartialView
   $('span[data-valmsg-for="AD"]').text('Work AD is invalid');
} else {
   // AD is valid here...
}