In the development of the Asp.net program, we sometimes need to perform some subsequent processing on the output HTML code. Such as compressing HTML code. The implementation method is very simple. We only need to extend a custom filter.
First, we create a filter that converts HTML to uppercase:
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 }
Because response. filter is an output filter that uses the decorative mode, you only need to add the following code:
Response.Filter = new CapitalFilter(Response.Filter);