MVC不同的错误来自所需的注释

时间:2015-11-26 13:10:09

标签: c# asp.net-mvc data-annotations

我有一个名为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因为我需要在特殊容器中显示错误

1 个答案:

答案 0 :(得分:0)

这可能就是你要找的东西:

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...
}