私は、いくつかの詳細とリンクを表示するためのリンクとそれらを編集するためのリンクを持つ項目(ヘッダ項目)のリストが必要なページを持っています。さらに、リストの最上部には、基本的な詳細(開始日と終了日)を取得し、そのデータを使用して新しいヘッダー項目を作成するフォームが必要です。私がやった何MVC3サブフォームの検証
:
- は、ヘッダ制御
- を作成したが、インデックスビュー(項目のリストを取得します)
- がstartHeaderビューを作成作成した(、開始と終了日をフォームを持っており、ボタン、形態「のaddHeader」のactionNameのを有する)
- は
- インデックスビュー に部分図としてstartHeaderビューを追加し、開始日と終了日は、「ValidationMessageFor」を追加
いくつかの検証を除いて、すべてが一般的に動作しているようです。必要なフィールドの検証が正常に機能しているようです(つまり、開始日を入力せずにボタンをクリックすると「開始日が必要です」と表示されます)。私が動作しているように思われないいくつかの追加の検証を追加しましたしかし
は:
- が
は、検証コードを追加したヘッダークラスにIValidatableObjectインタフェースを追加
場合(this.StartDate > this.EndDate) { yield return new ValidationResult( "開始日は終了日より前でなければなりません。"、new [] {"StartDate"}); }
- ボタンが押されたときに
- 予想通り、このコードが実行されますが、それはインデックス画面に滞在し、検証メッセージ
- は表示されません。むしろ、それは私が持っていたのaddHeaderビュー
- に通過しますこれが必要なフィールド検証と同じように動作し、検証メッセージを表示すると期待しました
ここに何か不足していますか?
- この検証は実行中ですが、エラーメッセージが表示されないのはなぜですか?
- この検証を実行してページに残すには何かを追加する必要がありますか?
- このようなことをするより良い方法はありますか?
バックエンドの.IsValidは、不足していたようですが、ありがとう! – ChrisHDog