我裝修我的控制器像這樣:是否可以在比每個控制器更高的級別禁用MVC OutputCache?
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public class ComponentController : Controller
這個偉大的工程禁用所有緩存所有的控制器暴露的方法。
我想在應用程序級應用相同的邏輯,而不是基於每個控制器。這可能嗎?
我裝修我的控制器像這樣:是否可以在比每個控制器更高的級別禁用MVC OutputCache?
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public class ComponentController : Controller
這個偉大的工程禁用所有緩存所有的控制器暴露的方法。
我想在應用程序級應用相同的邏輯,而不是基於每個控制器。這可能嗎?
添加它作爲global.asax文件中的全局過濾器。
protected void Application_Start()
{
GlobalFilters.Filters.Add(new OutputCacheAttribute { NoStore = true, Duration = 0, VaryByParam = "*" });
}
您可以將其添加爲全局過濾器。
在App_Start文件夾中通常有一個FilterConfig.cs類與RegisterGlobalFilters方法:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
// add your filters here
}
}
這通常被稱爲在Global.asax中的Application_Start的一部分:
protected void Application_Start()
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
}