C# 我如何知道我的表单是否已在我的视图中验证?

C# 我如何知道我的表单是否已在我的视图中验证?,c#,asp.net-mvc,razor,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 />

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

start.cshtml:

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

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

您不需要任何标志,框架已经准备好了所有东西。当涉及执行的
validationmessage时,
ModelState
被选中以包含此特定消息。如果找到消息(表示验证已完成),则会显示该消息,否则此方法不会向输出中添加任何内容

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

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

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

如果没有错误,验证消息将是空的。@Maarten“验证消息”可能是空的,但我仍然会每次都将html“外壳”写入屏幕,这是我不想做的。可能是@Anton的重复,如果我知道足够多的问题“如何检查ModelState.IsValid”,那么我就不会问这个问题了。。。还有,你的用户名@Anton是什么?(看到我在那里做了什么了吗?)不管怎样,这个答案对我帮助很大。@Nnoel我的评论是为了帮助你,给你一个指向已经回答过的类似问题的指针。对不起,我的意图不清楚。
@ViewData.ModelState["Email"].Errors.Count != 0