在ASP.NET MVC中使用IValidatableObject實作條件驗證
條件驗證可讓您根據模型中的特定條件指定驗證規則。在ASP.NET MVC中,資料註解提供了一種定義這些規則的直接方法,但是對於更複雜的條件場景,它們缺乏靈活性。
考慮以下模型和視圖,我們希望根據「IsSenior」屬性的選擇有條件地要求「Senior.Description」屬性:
<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>
在ASP.NET MVC 3(及更高版本)中,您可以利用IValidatableObject介面並實作Validate方法來更有效地處理條件驗證。在Validate方法中,您可以指定條件規則並為任何驗證失敗傳回ValidationResult物件。
透過如程式碼片段所示實作Validate方法,我們有效地新增了一個條件驗證規則,該規則在將「IsSenior」屬性設為true時要求「Senior.Description」屬性。這種方法提供了一種更清晰、更靈活的方法來在ASP.NET MVC應用程式中實現條件驗證。
以上是如何使用 IValidatableObject 在 ASP.NET MVC 中實作條件驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!