ホームページ >バックエンド開発 >C++ >IValidatableObject を使用して ASP.NET MVC で条件付き検証を実装する方法

IValidatableObject を使用して ASP.NET MVC で条件付き検証を実装する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-08 17:43:10652ブラウズ

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

IValidatableObject を使用して ASP.NET MVC で条件付き検証を実装する

条件付き検証を使用すると、モデル内の特定の条件に基づいて検証ルールを指定できます。 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。