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 に答える