Browse Source
Merge pull request #17423 from abpframework/ValidationAttributeHelper
Catch and ignore the `Exception` from `ValidationAttributeHelper`.
pull/17437/head
liangshiwei
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
15 additions and
7 deletions
-
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/Metadata/AbpModelMetadataProvider.cs
-
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Validation/ValidationAttributeHelper.cs
|
|
|
@ -40,11 +40,11 @@ public class AbpModelMetadataProvider : DefaultModelMetadataProvider |
|
|
|
{ |
|
|
|
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) |
|
|
|
{ |
|
|
|
|
|
|
|
@ -1,14 +1,15 @@ |
|
|
|
using System.ComponentModel.DataAnnotations; |
|
|
|
using System; |
|
|
|
using System.ComponentModel.DataAnnotations; |
|
|
|
using System.Reflection; |
|
|
|
|
|
|
|
namespace Volo.Abp.AspNetCore.Mvc.Validation; |
|
|
|
|
|
|
|
public static class ValidationAttributeHelper |
|
|
|
{ |
|
|
|
private static readonly PropertyInfo ValidationAttributeErrorMessageStringProperty = typeof(ValidationAttribute) |
|
|
|
private readonly static PropertyInfo ValidationAttributeErrorMessageStringProperty = typeof(ValidationAttribute) |
|
|
|
.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)!; |
|
|
|
|
|
|
|
public static void SetDefaultErrorMessage(ValidationAttribute validationAttribute) |
|
|
|
@ -24,7 +25,14 @@ public static class ValidationAttributeHelper |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
validationAttribute.ErrorMessage = |
|
|
|
ValidationAttributeErrorMessageStringProperty.GetValue(validationAttribute) as string; |
|
|
|
try |
|
|
|
{ |
|
|
|
var errorMessageString = ValidationAttributeErrorMessageStringProperty.GetValue(validationAttribute) as string; |
|
|
|
validationAttribute.ErrorMessage = errorMessageString; |
|
|
|
} |
|
|
|
catch (Exception e) |
|
|
|
{ |
|
|
|
// ignored
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|