手机
当前位置:查字典教程网 >编程开发 >C#教程 >mvc开启gzip压缩示例分享
mvc开启gzip压缩示例分享
摘要:复制代码代码如下:usingSystem.IO;usingSystem.IO.Compression;usingSystem.Web;usi...

复制代码 代码如下:

using System.IO;

using System.IO.Compression;

using System.Web;

using System.Web.Mvc;

public class CompressAttribute : ActionFilterAttribute

{

public override void OnResultExecuted(ResultExecutedContext filterContext)

{

//如果出现错误,则不进行压缩,否则页面会出现乱码,而不是报错的黄页

if (filterContext.Exception != null)

return;

HttpResponseBase Response = filterContext.HttpContext.Response as HttpResponseBase;

//判断IIS或者其他承载设备是是否启用了GZip或DeflateStream

if (Response.Filter is GZipStream || Response.Filter is DeflateStream)

return;

//开始进入压缩环节

string AcceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];

if (!string.IsNullOrEmpty(AcceptEncoding) && (AcceptEncoding.Contains("gzip") || AcceptEncoding.Contains("deflate")))

{

if (AcceptEncoding.Contains("gzip"))

{

Response.Filter = new GZipStream(Response.Filter, CompressionMode.Compress);

Response.Headers.Remove("Content-Encoding");

Response.AppendHeader("Content-Encoding", "gzip");

}

else

{

Response.Filter = new DeflateStream(Response.Filter, CompressionMode.Compress);

Response.Headers.Remove("Content-Encoding");

Response.AppendHeader("Content-Encoding", "deflate");

}

}

}

}

【mvc开启gzip压缩示例分享】相关文章:

c# 以二进制读取文本文件

C#中调用命令行cmd开启wifi热点的实例代码

二叉树的遍历算法(详细示例分析)

C# 图片剪切与缩小的实例

Question:基于C#连续赋值的面试题(解答)

c# 开机启动项的小例子

C# zxing二维码写入的实例代码

c# 调用.bat文件的实现代码

c#典型工厂化实现实例

c# 值类型实例构造器

精品推荐
分类导航