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>
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>
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!