特定のフィールドのデータベース内の既存の値をチェックするようにリモート検証が設定されたデータ入力フォームがあります。
何が起こるかです:
作成ページ(データ入力フォーム)に移動します。フィールドに値Xを入力します。
フィールドはフォーカスを失います。リモート検証が呼び出されます。Fiddlerが呼び出しを表示します。
[保存]をクリックします。レコードが保存されます。ページがインデックスページに切り替わります。
もう一度[ページの作成]に移動します。フィールドに値Yをもう一度入力します。
フィールドはフォーカスを失います。リモート検証が呼び出されます(Fiddlerごと)。
[保存]をクリックします。レコードが保存されます。ページがインデックスページに切り替わります。
[ページをもう一度作成]に移動し、フィールドにX(もう一度)を入力します。
フィールドはフォーカスを失います。何も起こりません。リモート検証の呼び出しはありません(Fiddlerごと)。
[保存]をクリックします。リモート検証の呼び出しはありません。ページはレコードを保存しようとしますが、データベースはそれを返します。
これは、[作成]ページが、フィールドの以前の値もXであったことを記憶していて、その間に他のページにアクセスしたにもかかわらず、変更されていないため再検証されていないかのようです。
モデルを作成ビューに渡していない:そのフィールドに変更されている(または変更されていない)以前の値があるという考えがどこで得られているのか想像できません。
私の知る限り、OutputCache
使用されていません。重要な場合は、IE8を使用しています。