目前,我在我的控制器中设置ViewBag.HasError
,然后在我的视图中使用该变量来确定是否应将提供验证消息的html写入屏幕。
start.cshtml:
@if (ViewBag.HasError != null && ViewBag.HasError)
{
<tr>
<td colspan="2">
@Html.ValidationMessageFor(m => m.Email)<br />
</td>
</tr>
}
框架内是否有类似内容?
答案 0 :(得分:1)
你不需要任何标志,框架已经有了一切。在执行ValidationMessageFor
时,会检查ModelState
以包含此特定消息。如果找到消息(意味着验证已完成),则显示该消息,否则此方法不会向输出添加任何内容。
但是,有一些内置功能允许您检查视图上的模型状态。以下是如何检查模型是否有效(类似于您已实现的):
@ViewData.ModelState.IsValid
以下是检查特定字段的错误的方法:
@ViewData.ModelState["Email"].Errors.Count != 0