我有一个输出缓存为20秒的动作。如果我为这个操作添加了Action filters(OnActionExecuting & OnActionExecuted),那么即使缓存的视图被接受,它也会被调用,或者当需要再次创建视图时,它只会在20秒内被调用一次。
[OutputCache(Duration = 20, Location = OutputCacheLocation.Server, VaryByParam = "")]
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}发布于 2014-05-29 16:16:39
当从缓存提供响应时,操作筛选器也将被跳过。所以他们每20秒只执行一次。
发布于 2014-05-29 16:03:13
这里OutputCache的意思是,最多每20秒调用一次Index操作。如果有1000个请求快速地接踵而至,那么只有第一个请求才会实际输入您的操作并生成结果--其余的请求只需从缓存中查找结果(假设缓存中有足够的空间用于结果)。
这里不应用OutputCache的OutputCache属性,因为Index操作没有参数。
https://stackoverflow.com/questions/23937618
复制相似问题