MVC 中的多个 OutputCache

Multiple OutputCache in MVC

我们可以为一个动作定义多个 OutputCache 吗?对于前。说我想存储 OutputCacheServer 中复制一个,在 Client 中复制另一个。我知道我们可以用 Location=OutputCacheLocation.ServerAndClient 来做,但是我想为 ClientServer 指定不同的 Duration,为 [=13] 指定更大的 Duration =] 和更小的 Duration for Client?那么有了这个要求,我可以像下面这样吗?

[OutputCache(Duration = 3600, Location = OutputCacheLocation.Server, VaryByParam = "pID", NoStore = true)] //Server Cache for 1 hour
[OutputCache(Duration = 600, Location = OutputCacheLocation.Client, VaryByParam = "pID", NoStore = true)] //Client Cache for 10 minutes
public ActionResult GetDetails(string pID)
{
    //some code
    return View(model);
}

这是否有效或 MVC 考虑了最新的 OutputCache

如果您查看 OutputCacheAttribute 的源代码,您会注意到该属性的定义 AllowMultiple 属性 设置为 false:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public class OutputCacheAttribute : ActionFilterAttribute, IExceptionFilter

所以不行