在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);