我怎么知道我的表单是否在我的视图中得到验证?

时间:2013-07-11 10:52:07

标签: c# asp.net-mvc razor

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

start.cshtml:

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

框架内是否有类似内容?

1 个答案:

答案 0 :(得分:1)

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

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

@ViewData.ModelState.IsValid

以下是检查特定字段的错误的方法:

@ViewData.ModelState["Email"].Errors.Count != 0