Heim > Backend-Entwicklung > C++ > Wie implementiert man eine benutzerdefinierte Validierung für die kombinierte Eigenschaftslänge in ASP.NET MVC?

Wie implementiert man eine benutzerdefinierte Validierung für die kombinierte Eigenschaftslänge in ASP.NET MVC?

Mary-Kate Olsen
Freigeben: 2025-01-16 19:32:11
Original
820 Leute haben es durchsucht

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

Verwenden Sie Datenanmerkungen, um eine benutzerdefinierte Überprüfung der kombinierten Attributlänge in ASP.NET MVC zu implementieren

Benutzerdefinierte Validierungseigenschaften bieten Flexibilität bei der gleichzeitigen Validierung mehrerer Eigenschaften. In ASP.NET MVC können Sie benutzerdefinierte Validierungseigenschaften mithilfe der Basisklasse ValidationAttribute erstellen und diese mithilfe des Attributs [Validate] auf Eigenschaften im Modell anwenden.

Benutzerdefinierte Validierungsattribute für kombinierte Attributlängen

Um die kombinierte Länge mehrerer Zeichenfolgeneigenschaften zu validieren, können Sie eine benutzerdefinierte Validierungseigenschaft wie diese erstellen:

<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>
Nach dem Login kopieren

Verwendung im Modell

Um diese Validierung auf Ihr Modell anzuwenden, können Sie eine seiner Eigenschaften mit dem Attribut [Validate] versehen:

<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>
Nach dem Login kopieren

Diese Validierungseigenschaft stellt sicher, dass die kombinierte Länge der Eigenschaften Foo, Bar und Baz größer oder gleich der angegebenen Mindestlänge ist (in diesem Beispiel 20). Wenn die Validierung fehlschlägt, wird in der Validierungszusammenfassung eine entsprechende Fehlermeldung angezeigt (wie im Parameter ErrorMessage definiert).

Das obige ist der detaillierte Inhalt vonWie implementiert man eine benutzerdefinierte Validierung für die kombinierte Eigenschaftslänge in ASP.NET MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage