Maison > développement back-end > C++ > Comment implémenter la validation personnalisée pour la longueur de propriété combinée dans ASP.NET MVC ?

Comment implémenter la validation personnalisée pour la longueur de propriété combinée dans ASP.NET MVC ?

Mary-Kate Olsen
Libérer: 2025-01-16 19:32:11
original
819 Les gens l'ont consulté

How to Implement Custom Validation for Combined Property Length in ASP.NET MVC?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal