我们的应用程序中有一个实例,我们希望能够使用OutputCache缓存多个页面的MVC操作的结果,但我刚刚意识到的是每个页面的基本设置缓存,因此会中断链条。
我的最终目标是当用户点击主页面以执行ajax请求时,一旦所有其他请求完成加载并缓存后续页面的数据。然后,当用户导航到需要MVC操作数据的另一个页面时,它立即可用。
这是我在主页上异步加载数据的脚本,
$(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("");
}