在我的控制器中捕获异常后,我想为电子邮件字段设置错误消息:
...
catch (EmailAlreadyExistsException emailAlreadyExistsException)
{
ModelState.AddModelError("Useraccount_Email", "This is an error message");
RegisterViewModel viewModel = new RegisterViewModel
{
Useraccount = useraccount,
InformationMessages = InformationMessageHelper.GetInformationMessages()
};
return PartialView(viewModel);
}
...错误消息现在应该显示在我的视图中:
@using (Ajax.BeginForm("Register", new AjaxOptions { HttpMethod = "Post", OnSuccess = "registerAjaxSuccess" }))
{
@Html.ValidationSummary(true)
<div class="ym-grid">
<div class="ym-g33 ym-gl">
<div class="ym-gbox">
@Html.LabelFor(model => model.Useraccount.LastName)
</div>
...
<div class="ym-grid">
<div class="ym-g33 ym-gl">
<div class="ym-gbox">
@Html.LabelFor(model => model.Useraccount.Email)
</div>
</div>
<div class="ym-g33 ym-gl">
<div class="ym-gbox">
@Html.EditorFor(model => model.Useraccount.Email, new { required = "required" })
</div>
</div>
<div class="ym-g33 ym-gr">
<div class="ym-gbox">
@Html.ValidationMessageFor(model => model.Useraccount.Email)
</div>
</div>
</div>
...但在本例中没有显示任何内容。:(我做错了什么?
发布于 2013-03-20 00:25:19
在添加模型错误时,处理复杂对象时,正确的分隔符是点分隔符,而不是unserscore _
因此,下面的调用应该可以工作:
ModelState.AddModelError("Useraccount.Email", "This is an error message");发布于 2014-01-31 13:03:09
请使用ModelState.AddModelError(string.Empty,“这是错误消息”);和@Html.ValidationSummary(true);
这将会起作用。
https://stackoverflow.com/questions/15504348
复制相似问题