0

MCV3 OutputCache を使用して、データでいっぱいのテーブルを含むページの読み込み時間を短縮しています。私は ajax メソッドを使用して情報を更新し、DOM を操作して、変更が成功したことをユーザーに示します。これは、ページが読み込まれ、更新されたデータセットの代わりにキャッシュされたデータセットが読み込まれるまで問題ありません。

Update メソッドが呼び出されたときに、キャッシュをクリアまたは削除して、ページのリロード時に新しい更新されたデータでキャッシュが再作成されるようにします。

私のコードは次のとおりです。

[OutputCache(CacheProfile = "VideoIndexView")]
public ActionResult Index()
{
    ...
    return View(model);
}
4

2 に答える 2

1

キャッシュから URL をクリアしたい場合は、 RemoveOutputCacheItem静的メソッドを呼び出すことができます。

于 2011-12-15T07:03:56.593 に答える
0

アクションの結果を使用Indexして画面のテンプレートを読み込み、AJAX を使用して実際のデータを取得して読み込むことができます。

[OutputCache(CacheProfile = "VideoIndexView")]
public ActionResult Index()
{
    ...
    return View(model);  // Really only return a model that is okay to be cached
}

public ActionResult LoadData ()
{
    var Result = // Load the data
    ...
    return Json(Result);  // Don't forget to allow GET here if you're using HTTPGET
}

// Or...

public ActionResult LoadData ()
{
    var Result = // Load the data
    ...
    return PartialView (Result);
}

このようにして、Index問題なくキャッシュでき、ページがユーザーに提供された後にデータがロードされてページに挿入されます。jQuery などを使用する場合、GET を使用している場合は、キャッシュされた結果を使用しないように指定してください。

于 2011-12-15T03:04:25.383 に答える