检查验证消息是否存在ASP.Net MVC 5

kno*_*ker 11 .net c# validation asp.net-mvc asp.net-mvc-5

有没有办法检查ASP.Net MVC 5中的particualr字段是否存在验证消息.我需要以Razaor形式检查这个

目前是IsNullOrEmpty,但我认为ValidationMessage确实会返回一些html标签,即使没有验证错误?

我需要在验证消息存在时才显示div,即对于特定字段的验证失败.

Ben*_*ths 32

您可以通过ViewData的属性访问ModelState,以便在输出任何HTML之前检查验证错误:

 @if(!ViewData.ModelState.IsValid) {
      @Html.ValidationMessageFor(...)
 }
Run Code Online (Sandbox Code Playgroud)

编辑:或者,如果您想要查看特定属性:

 @if(ViewData.ModelState["PropertyName"] != null && ViewData.ModelState["PropertyName"].Errors.Any()) {
       @Html.ValidationMessageFor(...)
  }
Run Code Online (Sandbox Code Playgroud)


Kar*_*sla 5

这是由 @ValidationMessagefor() 创建的范围:

<span class="field-validation-error" data-valmsg-for="FieldName" data-valmsg-replace="true"><span for="FieldName" generated="true" class="">Field name is required.</span></span>
Run Code Online (Sandbox Code Playgroud)

您可以只检查类“field-validation-error”是否存在。