控制器是:
[OutputCache(Duration = Int32.MaxValue, VaryByParam = "id", SqlDependency = "data:table")]
public ActionResult Details(int id)
{
var model = repo.GetDetails(id);
repo.IncreaseCounter(id);
return View(model);
}
原因计数器不能正常工作(当有人打开页面时增加计数器。)
是否可以每次调用repo.IncreaseCounter(id)但是启用了缓存离开?
我想,我可以打电话给两个控制器:一个用于增加计数器,另一个用于增加计数器。你能建议更优雅的方式吗? TIA
答案 0 :(得分:1)
一种选择是在每个页面内使用基于图像的跟踪器:
<img src="/counter/increase/12" />
然后设置一个控制器动作,这将增加计数器:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*", Location = OutputCacheLocation.None)]
public ActionResult Increase(int id)
{
repo.IncreaseCounter(id);
return File("empty.png", "image/png");
}
作为基于图像的跟踪器的替代方案,您可以使用基于AJAX的跟踪器,该跟踪器将使用AJAX命中控制器操作。