在asp.net程序的开发中,有时我们需要对输出的Html代码进行一些后续的处理。如压缩Html代码。实现的方法很简单,我们只需要扩展一个自定义的过滤器。
首先我们创建一个将html转换成大写的过滤器:
1 public class CapitalFilter : Stream 2 { 3 private Stream _responseStream; 4 5 public CapitalFilter(Stream responseStream) 6 { 7 _responseStream = responseStream; 8 } 9 10 public override void Flush() 11 { 12 } 13 14 public override int Read(byte[] buffer, int offset, int count) 15 { 16 return _responseStream.Read(buffer, offset, count); 17 } 18 19 public override void Write(byte[] buffer, int offset, int count) 20 { 21 string html = System.Text.UTF8Encoding.UTF8.GetString(buffer); 22 23 html = html.ToUpper(); 24 25 buffer = System.Text.UTF8Encoding.UTF8.GetBytes(html); 26 27 _responseStream.Write(buffer, offset, count); 28 } 29 }
因为Response.Filter是一个使用装饰着模式的输出过滤器,所以只需要添加如下代码:
Response.Filter = new CapitalFilter(Response.Filter);