如何检查Html.ValidationSummary是否有错误?

时间:2016-11-16 15:48:43

标签: html css asp.net-mvc

我正在编写一个mvc web应用程序,我正在尝试检查Html.ValidationSummary中是否有任何错误,以确定是否需要显示处理消息的div。

 @if(Html.ValidationSummary() != null)
  {
    <div class="registration-val-summary">
      <label class="registration-val-label">
        Please correct the following issues with your registration:
      </label>
      @Html.ValidationSummary()
    </div>
  }

这是我收到的错误:

  

意外&#34;如果&#34;关键字&#34; @&#34;字符。一旦进入内部代码,就可以了   不需要像&#34;前缀#34;与&#34; @&#34;。

从我在这篇文章中读到的内容:here这是由于&#34; Html&#34;我的代码里面有。我理解错误,但我不知道如何绕过它。我想避免显示包装ValidationSummary的div,除非显示实际错误,否则显示纠正错误的消息并替换我的表单。

如果ValidationSummary没有要显示的消息,我该如何隐藏它?

2 个答案:

答案 0 :(得分:1)

您正在收到该错误,因为您正在将部分视图rasor代码从Html.ValidationSummary()呈现到if语句中。然后,编译器会看到validationSummary呈现并失败的任何@符号。

检查是否存在验证错误的简单检查是@if(!ViewData.ModelState.IsValid)

@if(!ViewData.ModelState.IsValid)
  {
    <div class="registration-val-summary">
      <label class="registration-val-label">
        Please correct the following issues with your registration:
      </label>
      @Html.ValidationSummary()
    </div>
  }

答案 1 :(得分:0)

只有在页面上出现验证错误时才会显示

maxDonwload.download(url,filename,endFunc);

您正在尝试执行的操作已由Html.ValidationSummary()帮助程序实现,它返回一个HTML div元素,其中包含来自模型状态字典[Source]的所有验证错误消息的无序列表

Html.ValidationSummary()呈现局部视图,但您可以按照此answer

自定义/扩展视图

在您的情况下,您可能希望将以下代码放在要创建的自定义视图中

Html.ValidationSummary()