2

ビュー モデル プロパティに対して 2 つの個別の検証を実行する必要があります。どうやら、RemoteAttribute はプロパティごとに 1 回しか適用できません。これはおそらくばかげた質問ですが、これを回避する方法を知っている人はいますか?

public class ForgotPasswordModel
{
    // Getting compiler error "Duplicate RemoteAttribute attribute"
    [Remote("CanFindEmail", "Account", ErrorMessageResourceName = "EmailNotFound", ErrorMessageResourceType = typeof(ValidationMessages))]
    [Remote("IsAccountVerified", "Account", ErrorMessageResourceName = "AccountByEmailNotVerified", ErrorMessageResourceType = typeof(ValidationMessages))]
    [Required(ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PropertyRequired")]
    [Display(ResourceType = typeof(Resx), Name = "PersonEmailAddress")]
    public string Email { get; set; }
}
4

1 に答える 1

2

MVCがリモート検証を処理する方法を書き直すことなく、これを回避する方法はありRemoteAttributeません(プロパティごとに複数の宣言をサポートしていないため)。単一のリモート属性は、すべてのリモート検証を実行するサーバー上のメソッドを指す必要があります。そのサーバーメソッドで複数の検証タイプを集約する必要があります。プロパティごとに複数のリモート属性が必要ない理由は、追加のコールバックごとにオーバーヘッドが発生するため、パフォーマンスです。

于 2011-03-07T19:25:40.050 に答える