私は現在MVCアプリケーションを作成中です。これは基本的に、データベースコンテンツ用の大きなCRUDツールです。一部の選択肢(国、カテゴリなど)を制限するために使用される小さなテーブルについて、要求されたテーブルをロードし、ユーザーがAjax呼び出しのみを使用してプロパティを追加/削除/編集できるようにする1ページを作成しました。
ページが読み込まれると、ユーザーはすべてのテーブル名を含むドロップダウンリストを取得します。送信されると、次のコードがトリガーされます。
public PartialViewResult OpenConfig(string SelectID)
{
using (DBconnection db = new DBconnection())
{
switch (SelectID)
{
case "---":
return null;
case "1":
var countries = (from x in db.tbl_CountriesSet select x).ToList();
return PartialView("Countries", countries);
case "2":
var supplierstatus = (from x in db.tbl_SupplierStatusSet select x).ToList();
return PartialView("Supplierstatus", supplierstatus);
case "3": .....
}
}
}
ここが面白いところです。国ウィンドウを開いたとすると、正しく読み込まれ、国を追加/編集/削除できます。これらのエントリはjQueryを使用してページ上で更新され、同時にAjax呼び出しがデータベースの更新に使用されます。これらは両方とも正常に機能し、データベースとページの両方が更新されます。作業を続けることができ、すべての変更がページとデータベースの両方に反映されます。部分ビューをリロードすると問題が発生します。
ドロップダウンリストで国の値を選択して再度送信すると、プログラムは上記の方法をスキップして、最初にリストをリクエストしたときに表示されたのと同じ部分ビューを表示します。メソッドにブレークポイントを設定しました。トリガーされる前にロードしていないものをロードした場合ですが、既に要求したページにはブレークポイントを設定していません。Firefoxでは、これは機能し、部分ビューが更新されます(そして、ブレークポイントがトリガーされます)が、Internet Explorerでは、コントローラーは完全に無視され、同じページを表示し続けます(完全に異なるページに移動してから戻った場合でも)設定ページへ)。
現在のデータベースの内容を含む部分ビューを明示的に再ロードするようにIEに指示する方法を教えてもらえますか?