ASP.Net MVC忽略过滤顺序

vdh*_*ant 3 .net c# asp.net asp.net-mvc action-filter

只是想知道是否有人知道我的过滤器订单被忽略的原因...

[AcceptVerbs(HttpVerbs.Get)]
[Compress(Order = 1)]
[EnhancedOutputCache(Order = 2, Duration = 5, VaryByParam = "true", Location = OutputCacheLocation.ServerAndClient)]
public virtual ActionResult Index()
{
    return View();
} 

public class CompressAttribute : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        base.OnResultExecuted(filterContext);
    }
}

public class EnhancedOutputCacheAttribute : OutputCacheAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        base.OnResultExecuting(filterContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,EnhancedRutputCache正在Compress运行之前运行...我希望压缩首先发生但是它正在运行第二...任何想法为什么

作为旁注,我正在使用ASP.Net MVC 2.0预览1 ...

dov*_*ove 5

你正在压倒周期的不同部分. OnResultExecuting(OnResultExecuting)将在之前发生OnResultExecuted(CompressAttribute).

我必须验证,但这是压缩和输出缓存需要发生的地方,因此在输出缓存之前甚至可能无法进行压缩.除此之外,我可能还有一个很好的理由.