1 ///2 /// 允许压缩 3 /// 4 public class AllowCompressAttribute : System.Web.Mvc.ActionFilterAttribute 5 { 6 ///7 /// 压缩方法 8 /// 9 public override void OnResultExecuting(ResultExecutingContext filterContext)10 {11 string acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];12 if (String.IsNullOrEmpty(acceptEncoding)) return;13 var response = filterContext.HttpContext.Response;14 acceptEncoding = acceptEncoding.ToUpperInvariant();15 //查看客户端是否支持压缩16 if (acceptEncoding.Contains("GZIP"))17 {18 response.AppendHeader("Content-Encoding", "gzip");19 response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);20 }21 else if (acceptEncoding.Contains("DEFLATE"))22 {23 response.AppendHeader("Content-Encoding", "deflate");24 response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);25 }26 base.OnResultExecuting(filterContext);27 }28 }