Utilisez des annotations de données pour implémenter une vérification personnalisée de la longueur des attributs combinés dans ASP.NET MVC
Les propriétés de validation personnalisées offrent une flexibilité lors de la validation simultanée de plusieurs propriétés. Dans ASP.NET MVC, vous pouvez créer des propriétés de validation personnalisées à l'aide de la classe de base ValidationAttribute
et les appliquer aux propriétés du modèle à l'aide de l'attribut [Validate]
.
Attributs de validation personnalisés pour les longueurs d'attributs combinées
Pour valider la longueur combinée de plusieurs propriétés de chaîne, vous pouvez créer une propriété de validation personnalisée comme celle-ci :
<code class="language-csharp">public class CombinedMinLengthAttribute : ValidationAttribute { public CombinedMinLengthAttribute(int minLength, params string[] propertyNames) { this.PropertyNames = propertyNames; this.MinLength = minLength; } public string[] PropertyNames { get; private set; } public int MinLength { get; private set; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var properties = this.PropertyNames.Select(validationContext.ObjectType.GetProperty); var values = properties.Select(p => p.GetValue(validationContext.ObjectInstance, null)).OfType<string>(); var totalLength = values.Sum(x => x.Length) + Convert.ToString(value).Length; if (totalLength < MinLength) { return new ValidationResult(ErrorMessageString); } return ValidationResult.Success; } }</code>
Utilisation dans le modèle
Pour appliquer cette validation à votre modèle, vous pouvez décorer une de ses propriétés avec l'attribut [Validate]
:
<code class="language-csharp">public class MyViewModel { [CombinedMinLength(20, "Bar", "Baz", ErrorMessage = "Foo, Bar和Baz属性的组合最小长度应大于20")] public string Foo { get; set; } public string Bar { get; set; } public string Baz { get; set; } }</code>
Cette propriété de validation garantit que la longueur combinée des propriétés Foo, Bar et Baz est supérieure ou égale à la longueur minimale spécifiée (20 dans cet exemple). Si la validation échoue, un message d'erreur approprié s'affiche dans le résumé de validation (tel que défini dans le paramètre ErrorMessage
).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!