0
私たちは、OutputCacheを使用して複数ページのMVCアクションの結果をキャッシュできるようにするアプリケーションのインスタンスを用意しています。私はちょうど各ページのための私の基本的なセットアップキャッシュがあることを認識したので、これはチェーンを壊す。MVC OutputCache属性を使用して複数のページで使用するアクションの結果をキャッシュする方法
私の究極の目標は、メインページをヒットしてAjaxリクエストを実行した後、後続ページのデータをロードしてキャッシュするというものです。ユーザーがMVCアクションデータを必要とする別のページにナビゲートすると、すぐに使用できます。
これは、あなたがAに要求を向ける試みることができる、私のメインページに非同期でデータをロードするために私のスクリプトです
$(document).one("ajaxStop", function() {
$.ajax({
url: '../Companies/CompanySelectList',
type: 'GET',
success: function (data) {
//alert(data.success);
},
error: function (request, status, error) {
//alert(request.responseText);
}
})
})
そして、これを実行するために私のMVCのアクションで、
[OutputCache(Duration=60)]
public ActionResult CompanySelectList()
{
List<CompanyDTO> companies = new List<CompanyDTO>();
var results = _api.Companies.GetCompany();
if (results.message == null)
{
companies.AddRange(results.data);
//Build up remaining data
for (int i = results.page + 1; i <= results.totalPages; i++)
{
results = _api.Companies.GetCompany(page: i);
companies.AddRange(results.data);
}
companies = companies.OrderBy(n => n.CompanyName).ToList();
return PartialView("_CompanySelectList", companies);
}
else
{
ModelState.AddModelError("", results.message);
}
return PartialView("");
}