【问题标题】:MVC 5 Action Filters execution scenariosMVC 5 Action Filters 执行场景
【发布时间】:2014-05-29 15:58:15
【问题描述】:

我有一个动作,它的输出被缓存了 20 秒。如果我为此操作添加操作过滤器(OnActionExecutingOnActionExecuted),即使采用缓存视图,它也会被调用,或者当视图在 20 秒内仅调用一次需要重新创建。

[OutputCache(Duration = 20, Location = OutputCacheLocation.Server, VaryByParam = "")]
public ActionResult Index()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";

        return View();
    }

【问题讨论】:

    标签: asp.net-mvc outputcache


    【解决方案1】:

    这里OutputCache的意思是Index动作最多每20秒被调用一次。如果一千个请求快速连续出现,则只有第一个请求会真正进入您的操作并生成结果 - 其余请求将简单地从缓存中查找结果(假设缓存中有足够的空间存储结果)。

    OutputCacheVaryByParam 属性在此处不适用,因为您的 Index 操作没有参数。

    【讨论】:

    • 干净的解释..up +1
    【解决方案2】:

    当从缓存中提供响应时,动作过滤器也将被跳过。所以它们每 20 秒只执行一次。

    【讨论】:

      猜你喜欢
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多