用于控制器的所有操作的MVC VaryByHeader用户代理

时间:2014-01-28 03:35:03

标签: c# asp.net-mvc model-view-controller

我正在开发一个ASP.NET MVC网站,该网站为每个网址提供两个不同版本的网站(一个用于移动设备,一个用于桌面设备)。我试图设置Responce.Cache.VaryByHeaders.UserAgent = true,但不希望必须在控制器中的每个操作上指定它,似乎是多余的。我想全局设置if是否为特定控制器中的所有操作。这是合理的事吗?我在哪里放置逻辑?

1 个答案:

答案 0 :(得分:2)

一种选择是使用Action filters

来自howto的示例:

public class CachingFilterAttribute : ActionFilterAttribute
{
  public override void OnActionExecuting(ActionExecutingContext 
    filterContext)
  {
    // set VaryByHeaders the way you need
  }
 }

 [CachingFilter]
 public MyController : Controller...