アイテム (ヘッダー アイテム) のリストと詳細、表示へのリンク、およびそれらを編集するためのリンクが必要なページがあります。さらに、リストの一番上に、基本的な詳細 (開始日と終了日) を取得し、そのデータを使用して新しいヘッダー項目を作成するフォームが必要です。
私がやったこと:
- ヘッダーコントローラーを作成しました
- インデックス ビューを作成しました (アイテムのリストを取得します)
- startHeaderビューを作成しました(開始日、終了日、ボタンを含むフォームがあり、フォームには「addHeader」のactionNameがあります)
- 開始日と終了日の「ValidationMessageFor」を追加
- startHeader ビューを部分ビューとして index ビューに追加しました
一部の検証を除いて、すべてが一般的に機能しているように見えます。必須フィールドの検証は期待どおりに機能しているようです (つまり、開始日を入力せずにボタンをクリックすると、「開始日が必要です」と表示されます)。
ただし、機能していないように見える追加の検証を追加しました。
- IValidatableObject インターフェイスをヘッダー クラスに追加しました
追加された検証コード
if (this.StartDate > this.EndDate) { yield return new ValidationResult("開始日は終了日より前でなければなりません。", new[] { "StartDate" }); }
- ボタンが押されると、このコードは期待どおりに実行されます
- ただし、インデックス画面にとどまらず、検証メッセージを表示します
- むしろ、 addHeader ビューを通過します
- 私はこれが必須フィールドの検証と同じように機能し、検証メッセージを表示することを期待していました
私がここに欠けているものはありますか?
- この検証が実行されているのに、エラー メッセージが表示されないのはなぜですか?
- この検証を実行してページに残すために何かを追加する必要がありますか?
- このようなことを行うためのより良い方法はありますか?