2010-01-18 65 views
5

Vì vậy, tôi đang chơi xung quanh với việc đưa HTML ra khỏi một trang ASP.Net chuẩn. Tôi đã ghi đè phương thức Hiển thị, như vậy:Ghi đè hiển thị của giới hạn kích thước trang/giới hạn kích thước StreamReader?

protected override void Render(HtmlTextWriter writer) 
{ 
    MemoryStream memoryStream = new MemoryStream(); 

    try 
    { 
     using (StreamWriter streamWriter = new StreamWriter(memoryStream)) 
     { 
      var textWriter = new HtmlTextWriter(streamWriter); 
      base.Render(textWriter); 
      memoryStream.Position = 0; 
      using (StreamReader reader = new StreamReader(memoryStream)) 
      { 
       var text = reader.ReadToEnd(); 
       Response.Write(text); 
       reader.Close(); 
      } 
     } 
    } 
    catch(ObjectDisposedException) 
    { 
     // The stream writer is already disposed? 
    } 
    finally 
    { 
     memoryStream.Dispose(); 
    } 
} 

Điều này hoạt động tốt trên các tệp có kích thước nhỏ hơn 8,00 KB (8,200 byte). Nếu tệp lớn hơn, bất kỳ văn bản nào ở cuối sẽ bị cắt.

Có ai có đề xuất không?

Trả lời

5

Có thể, textWriter.Flush() sau khi gọi tới base.Render() sẽ tiết kiệm trong ngày của bạn.

+0

Điều đó đã giải quyết vấn đề đó. Tôi không chắc chắn _why_ nó đã chăm sóc nó, nhưng nó đã làm, và đó là điều quan trọng.

Các vấn đề liên quan