csharp ASP.net MVC3的程序化GZip动作过滤器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp ASP.net MVC3的程序化GZip动作过滤器相关的知识,希望对你有一定的参考价值。

public class GZipCompressionGlobalActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string acceptEncoding = filterContext.HttpContext.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);
        }
    }
}

以上是关于csharp ASP.net MVC3的程序化GZip动作过滤器的主要内容,如果未能解决你的问题,请参考以下文章

如何加载在 asp.net mvc3 上开发的测试 Web 应用程序?

将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

具有最佳实践的示例 N 层 ASP.NET MVC3 应用程序(使用 EF 4.1)

IIS 上的 ASP.NET MVC3 和 Windows Auth 不断重定向到 /Account/Login

ASP.NET MVC3 和实体框架代码优先架构

在 ASP.NET MVC3 中正确使用 TempData?