我想在ASP.NET MVC中将ActionFilter应用到我的应用程序中的每个操作 - 在每个控制器上.
有没有办法在不将其应用于每个ActionResult方法的情况下执行此操作?
我一直在使用Yahoo的YSLOW试图让我的网页在AgentX上更快
我正在使用下面的压缩过滤器.当我通过visual studio运行该站点时,YSLOW说所有文件都被压缩了,当我查看实时站点时,我得到一个A,它得到一个E并说我的文件需要被压缩.谁能解释一下?
public class CompressFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(acceptEncoding)) return;
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter,
CompressionMode.Compress);
}
else if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter,
CompressionMode.Compress);
}
}
}
Run Code Online (Sandbox Code Playgroud)