1

Custom Validator を最初から最後まで作成する方法を示す非常に優れた記事に誘導されました。私の唯一の問題は、これが単一のフィールドでのみ機能することです: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx

モデル内の 2 つ以上のプロパティに対して検証する必要がある場合はどうすればよいですか? モデル全体をバリデーターに渡すにはどうすればよいですか?

注:明確にするために、ポストバックでモデル全体を検証することに頼る必要は本当にありません...これは、このメソッドの目的を無効にします。

4

1 に答える 1

5

カスタムのvalidate属性を使用し、個々のプロパティではなく、それを使用してモデルを装飾する必要があります。

[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public class MyCustomValidatorAttribute : ValidationAttribute 
{
    public override bool IsValid(object value) 
    {
        // value here will be the model instance you could cast
        // and validate properties
        return true;
    }
}

次に、モデルをそれで装飾します。

[MyCustomValidator]
public class MyViewModel
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
}

検証を実行するためのデータ注釈の代わりに、 FluentValidation.NETを強くお勧めします。また、ASP.NETMVCとの優れた統合もあります。

于 2011-01-13T18:36:41.700 に答える