Verwenden von IValidatableObject zum Implementieren der bedingten Validierung in ASP.NET MVC
Mit der bedingten Validierung können Sie Validierungsregeln basierend auf bestimmten Bedingungen in Ihrem Modell festlegen. In ASP.NET MVC bieten Datenanmerkungen eine einfache Möglichkeit, diese Regeln zu definieren, es mangelt ihnen jedoch an Flexibilität für komplexere bedingte Szenarios.
Betrachten Sie das folgende Modell und die folgende Ansicht, in der wir die Eigenschaft „Senior.Description“ basierend auf der Auswahl der Eigenschaft „IsSenior“ bedingt anfordern möchten:
<code class="language-csharp">public class Person : IValidatableObject { [Required] public string Name { get; set; } public bool IsSenior { get; set; } public Senior Senior { get; set; } public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (IsSenior && string.IsNullOrEmpty(Senior.Description)) yield return new ValidationResult("必须提供描述。"); } }</code>
In ASP.NET MVC 3 (und höher) können Sie die IValidatableObject-Schnittstelle nutzen und die Validate-Methode implementieren, um die bedingte Validierung effizienter durchzuführen. In der Validate-Methode können Sie bedingte Regeln angeben und bei jedem Validierungsfehler ein ValidationResult-Objekt zurückgeben.
Durch die Implementierung der Validate-Methode, wie im Codeausschnitt gezeigt, fügen wir effektiv eine bedingte Validierungsregel hinzu, die die Eigenschaft „Senior.Description“ erfordert, wenn die Eigenschaft „IsSenior“ auf „true“ gesetzt ist. Dieser Ansatz bietet eine sauberere und flexiblere Möglichkeit, die bedingte Validierung in ASP.NET MVC-Anwendungen zu implementieren.
Das obige ist der detaillierte Inhalt vonWie implementiert man eine bedingte Validierung in ASP.NET MVC mithilfe von IValidatableObject?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!