0

目前,我ViewBag.HasError在我的控制器中进行设置,然后在我的视图中使用该变量来确定是否应将提供验证消息的 html 写入屏幕。

开始.cshtml:

@if (ViewBag.HasError != null && ViewBag.HasError)
{
  <tr>
    <td colspan="2">
      @Html.ValidationMessageFor(m => m.Email)<br />                
    </td>
  </tr>
}

框架内已经有类似的东西了吗?

4

1 回答 1

1

您不需要任何标志,框架已经准备就绪。在ValidationMessageFor执行时,ModelState检查是否包含此特定消息。如果找到消息(意味着验证已完成),则会显示该消息,否则此方法不会向输出添加任何内容。

但是,有一些内置功能允许您检查视图上的模型状态。以下是如何检查模型是否普遍有效(类似于您已实现的):

@ViewData.ModelState.IsValid

以下是如何检查特定字段的错误:

@ViewData.ModelState["Email"].Errors.Count != 0
于 2013-07-11T10:55:35.903 回答