カスタム ビュー モデル クラスを DTO オブジェクトとして使用して、View ページに表示するデータを保持しています。これらのクラスのプロパティに対してサーバー側の検証を実行するために、DataAnnotations ライブラリを介して検証を適用しました。簡単な例を次に示します。
[DisplayName("Customer Account Id")]
[Required(ErrorMessage = "* Account Number is required")]
[StringLength(16, ErrorMessage = "* Account Number must be 16 characters in length", MinimumLength = 16)]
public string CustomerAccountId { get; set; }
誰かが検索を送信し、このフィールドが通過しないか、16 以外の長さで通過した場合、検証は失敗し、ValidationMessage HtmlHelper を介してページにエラー メッセージが表示されます。
<%= Html.ValidationMessage("CustomerAccountId")%>
ここで、アカウント IDまたは名/姓の組み合わせで検索する機能を追加する必要があります。私の質問はこれです:
条件付き検証を適用するにはどうすればよいですか? 名/姓で検索を送信した場合、アカウント番号も渡されなかったために検証が失敗することは望ましくありません。カスタムバリデーターを実装する方法を示すこのリンクを見つけましたが、これは 1 つのプロパティに当てはまるようです。オブジェクト モデル全体を渡し、適切な検証エラー メッセージを適切なフィールドに戻してページに表示するにはどうすればよいですか? これは可能ですか?