【发布时间】:2014-08-14 15:47:06
【问题描述】:
我的 MVC Web 应用程序有一些奇怪的行为。
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class NoCacheFilterAttribute : ActionFilterAttribute
{
ctx.Response.AddHeader("Cache-Control", "no-cache);
}
我将这个过滤器类添加到 GlobalFilterCollection 以便它在每个操作上运行。
我正在尝试在我的一种家庭控制器操作方法中选择性地覆盖此标头。 Response.Headers.Remove("缓存控制"); Response.AddHeader("Cache-Control", "private,must-revalidate,proxy-revalidate");
问题不是这些代码设置了正确的值。当我检查响应标头中的值时,Cache-Control 设置为“private,s-maxage=0”。我扫描了我所有的代码,看看我是否在任何地方都明确地这样做了,但我没有看到自己这样做。奇怪的是如果我打电话 Response.Cache.SetNoStore();或 Response.Cache 的任何方法。 Cache-Control 的响应值随之改变。我不确定为什么 Response.AddHeader 或 AppendHeader 不起作用?
【问题讨论】:
标签: asp.net asp.net-mvc-4