代码 复制 - 运行

protected override void Render(HtmlTextWriter writer)
    {
    //把最终要输出的html压缩后再输出
    StringWriter html = new StringWriter();
    HtmlTextWriter tw = new HtmlTextWriter(html);
    base.Render(tw);
    string uthtml = html.ToString();
    uthtml = Regex.Replace(outhtml, "\\s+", " ");
    uthtml = Regex.Replace(outhtml, ">\\s+<", "><");
    uthtml = outhtml.Trim();
    writer.Write(outhtml);
    }

    protected override void Render(HtmlTextWriter writer)
    {
    //最终输出前先存为html文件,如果发布最新信息了,可以打开一次default.aspx,然后他又会生成一次html
    //这是默认的Render实现,直接输出到writer中
    //base.Render(writer);
    StringWriter html = new StringWriter();
    HtmlTextWriter tw = new HtmlTextWriter(html);
    //通过base.Render()方法,把生成的HTML写入到我们定义的tw中
    base.Render(tw);
    string path = Server.MapPath("index.html");
    StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.Default);
    //写入到文件中
    sw.Write(html.ToString());
    sw.Close();
    //写入到writer中,以输出页面的HTML
    //注意,这里不能再调用base.Render(writer),会出现错误
    writer.Write(html.ToString());
    }