我在我的Action方法中定义了OutputCache
过滤器,如下所示
[OutputCache(VaryByCustom = "Culture", Duration = 60, VaryByParam = "*")]
并在 Global.asax 中覆盖了GetVaryByCustomString
方法如下:
public override string GetVaryByCustomString(HttpContext context, string custom)
{
return "test";
}
这个代码正好与模板mvc应用程序一起使用,所以我假设语法恰到好处。
不幸的是不在我的申请中。
你们有什么想法可能会导致同样的问题吗?
我真的试图找出HOURS但没有成功。
请写下对您有用的任何建议。
UPDATE:仅当控制器类直接来自Controller
类时,它才有效。如果它们之间还有其他类,则它不起作用。任何想法可能是什么原因?我的派生DefaultController
类中有许多常用功能,因此在每个控制器中实现相同的功能会很尴尬。
UPDATE2:如果发现问题是我在每个控制器上覆盖BeginExecuteCore,如果我从Controller对象修改任何内容(Cookies,Session),将不再调用GetVaryByCustomString。有谁知道为什么?