5

因此,我正在尝试从标准的 ASP.Net 页面中获取 HTML。我已经覆盖了 Render 方法,如下所示:

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();
    }
}

这适用于小于 8.00 KB(8,200 字节)的文件。如果文件大于该文件,则末尾的任何文本都将被截断。

有人有建议吗?

4

1 回答 1

5

也许,textWriter.Flush()打电话后base.Render()会节省你的一天。

于 2010-01-18T15:17:24.590 回答