如何查看验证是否已触发?

时间:2014-07-07 15:27:02

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我正在为注册表单添加验证。现在,我有这个:

<div class="row">
    <div class="alert alert-danger">
        @Html.ValidationMessageFor(model => model.FirstName)
        @Html.ValidationMessageFor(model => model.LastName)
        @Html.ValidationMessageFor(model => model.EmailAddress)
        @Html.ValidationMessageFor(model => model.Company)
        @Html.ValidationMessageFor(model => model.ClearTextPassword)
    </div>
</div>

验证工作正常,但我有几个问题:

  • 现在我有一个空的红色框,当没有我非常想隐藏的验证时。我如何检查整个模型是否存在任何验证错误,以便我可以将其包含在if语句中?例如if(model.ValidationErrors.Count > 0)
  • 我还希望将其包装在ul中,如何查看是否在属性级别触发了验证?例如if(model.FirstName.FailedValidation)

理想情况下,我想从视图中执行这两项检查。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以添加@Html.ValidationSummary()以显示错误消息。

答案 1 :(得分:1)

为什么不使用ValidationSummary()

基本上它会做你想要的一切。只需用

替换问题中的所有代码即可
@Html.ValidationSummary()

您可能需要编辑一些CSS,因为它与上面的结构不完全相同。

如果你想要产生完全相同的结构,你将需要使用不显眼的验证javascript(这是非平凡的)

Docs