Browse Source

Catch and ignore the `Exception` from `ValidationAttributeHelper`.

pull/17423/head
maliming 3 years ago
parent
commit
07ec945839
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 4
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/Metadata/AbpModelMetadataProvider.cs
  2. 18
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Validation/ValidationAttributeHelper.cs

4
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/Metadata/AbpModelMetadataProvider.cs

@ -40,11 +40,11 @@ public class AbpModelMetadataProvider : DefaultModelMetadataProvider
{ {
foreach (var validationAttribute in detail.ModelAttributes.Attributes.OfType<ValidationAttribute>()) foreach (var validationAttribute in detail.ModelAttributes.Attributes.OfType<ValidationAttribute>())
{ {
NormalizeValidationAttrbute(validationAttribute); NormalizeValidationAttribute(validationAttribute);
} }
} }
protected virtual void NormalizeValidationAttrbute(ValidationAttribute validationAttribute) protected virtual void NormalizeValidationAttribute(ValidationAttribute validationAttribute)
{ {
if (validationAttribute.ErrorMessage == null) if (validationAttribute.ErrorMessage == null)
{ {

18
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Validation/ValidationAttributeHelper.cs

@ -1,14 +1,15 @@
using System.ComponentModel.DataAnnotations; using System;
using System.ComponentModel.DataAnnotations;
using System.Reflection; using System.Reflection;
namespace Volo.Abp.AspNetCore.Mvc.Validation; namespace Volo.Abp.AspNetCore.Mvc.Validation;
public static class ValidationAttributeHelper public static class ValidationAttributeHelper
{ {
private static readonly PropertyInfo ValidationAttributeErrorMessageStringProperty = typeof(ValidationAttribute) private readonly static PropertyInfo ValidationAttributeErrorMessageStringProperty = typeof(ValidationAttribute)
.GetProperty("ErrorMessageString", BindingFlags.Instance | BindingFlags.NonPublic)!; .GetProperty("ErrorMessageString", BindingFlags.Instance | BindingFlags.NonPublic)!;
private static readonly PropertyInfo ValidationAttributeCustomErrorMessageSetProperty = typeof(ValidationAttribute) private readonly static PropertyInfo ValidationAttributeCustomErrorMessageSetProperty = typeof(ValidationAttribute)
.GetProperty("CustomErrorMessageSet", BindingFlags.Instance | BindingFlags.NonPublic)!; .GetProperty("CustomErrorMessageSet", BindingFlags.Instance | BindingFlags.NonPublic)!;
public static void SetDefaultErrorMessage(ValidationAttribute validationAttribute) public static void SetDefaultErrorMessage(ValidationAttribute validationAttribute)
@ -24,7 +25,14 @@ public static class ValidationAttributeHelper
} }
} }
validationAttribute.ErrorMessage = try
ValidationAttributeErrorMessageStringProperty.GetValue(validationAttribute) as string; {
var errorMessageString = ValidationAttributeErrorMessageStringProperty.GetValue(validationAttribute) as string;
validationAttribute.ErrorMessage = errorMessageString;
}
catch (Exception e)
{
// ignored
}
} }
} }

Loading…
Cancel
Save