我有一个名为Address的类,如:
class Address
{
[Required(ErrorMessage = "AD is required.")]
public string AD{get; set;
}
在我的模型中,我有两个Address
类型的成员(HomeAddress
和WorkAddress
),在我的视图中,我渲染了两个部分视图,每个视图包含一个地址。如果我的模型无效,我想显示两个错误:“Home AD is required
”或“Work AD is required
”。是否可以使用单个类来实现此目的而无需创建自定义验证器?
编辑。我需要从ModelState
获取错误,因此我无法使用@Html.ValidationMessageFor
因为我需要在特殊容器中显示错误
答案 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...
}