【问题标题】:ModelState.AddModelError - no error shownModelState.AddModelError - 未显示错误
【发布时间】:2013-03-08 09:56:23
【问题描述】:

我想在我的控制器中捕获异常后为电子邮件字段设置错误消息:

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

但在这种情况下没有显示任何内容。 :( 我做错了什么?

【问题讨论】:

  • 你认为Html.ValidationSummary(true)在哪里?
  • 它在那里,查看更新的源代码。

标签: asp.net-mvc asp.net-mvc-3 modelstate


【解决方案1】:

添加模型错误时,处理复杂对象时正确的分隔符是点 . 而不是 unsercore _

所以下面的调用应该可以工作:

ModelState.AddModelError("Useraccount.Email", "This is an error message");

【讨论】:

  • 谢谢先生。这成功了。是否有可能避免密钥的硬编码字符串并从模型本身访问信息?
【解决方案2】:

请使用 ModelState.AddModelError(string.Empty, "This is an error message"); 和@Html.ValidationSummary(true);

这会起作用。

【讨论】:

    猜你喜欢
    • 2015-12-30
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2012-08-02
    • 2020-12-04
    相关资源
    最近更新 更多