首頁 > 後端開發 > C++ > 如何使用 IValidatableObject 在 ASP.NET MVC 中實作條件驗證?

如何使用 IValidatableObject 在 ASP.NET MVC 中實作條件驗證?

Susan Sarandon
發布: 2025-01-08 17:43:10
原創
651 人瀏覽過

How to Implement Conditional Validation in ASP.NET MVC Using IValidatableObject?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板