0

モデルがEFで作成されたときにエンティティPerson(id、dept、EmailAddress、DOB、...)があるとします。次に、このクラスのメタデータクラスを作成して、次のようにサーバー側に検証ルールを配置します。

[CustomValidation(typeof(MyValidator), "DOBValidator")]
public Nullable<DateTime> DOB { get; set; }

[RegularExpression("^([\\w-\\.]+)@((\\[[0–9]{1,3}\\.[0–9]{1,3}\\.[0–9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4" + "}|[0–9]{1,3})(\\]?)$", ErrorMessage = "Invalid email address")]
[StringLength(128)]
public string EmailAddress { get; set; }

検証ルールが設定されている場合、クライアント側から送信されたデータは、保存のためにデータを送信するときに例外なく検証を通過します。

しかし、今はルールの例外が必要です.UIから、データに基づいてエンティティPersonにバインドしてUIからデータを取得するとき、検証を無視したいです。たとえば、Dept=A の場合は EmailAddress 検証をチェックせず、dept=B の場合は DOB 検証をチェックしません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

クラスレベルの検証が必要だと思います。この質問を見て ください もちろん、コードはクライアント側でコンパイルする必要があります。(WCF ria サービスを使用している場合、これに到達する方法はいくつかあります)

HTH

于 2012-08-02T12:19:53.957 に答える