将渲染的HTML写入文件

时间:2012-08-09 19:50:35

标签: c# asp.net html

我有一个Web应用程序,显示用户可以编辑的表格。在编辑过程中,原始表的各种内部HTML被用户所做的编辑所取代。一旦用户完成,我想将结果表保存在.html文件中,以便我可以将其包含在PowerPoint幻灯片中,而无需重新创建它。基本上我想在编辑后捕获.aspx文件并将其写入文件。

感谢任何建议。

问候。

3 个答案:

答案 0 :(得分:4)

  

基本上我想按原样捕获.aspx文件

因为您声明“捕获ASPX”,我假设数据编辑在某处(内存/数据库)持久存在。这意味着可以直接覆盖控件/页面的Render()方法,并将输出流重定向(或复制)到文件中。

实施例

protected override void Render( HtmlTextWriter writer ) {
    using( HtmlTextWriter htmlwriter = new HtmlTextWriter( new StringWriter() ) ) {

        base.Render( htmlwriter );
        string renderedContent = htmlwriter.InnerWriter.ToString();

        // do something here with the string, like save to disk
        File.WriteAllText( @"c:\temp\foo.html", renderedContent );

        // you could also Response.BinaryWrite() the data to the client 
        // so that it could be saved on the user's machine.

        // and/or write it out to the output stream as well
        writer.Write( renderedContent );
    }
}

序列

  • 用户输入数据
  • 您将结果存储在某个地方
  • 使用最新内容重新呈现控件
  • 捕获控件的输出并将其写入文件

答案 1 :(得分:2)

如果你在客户端这样做,你可以使用jquery

做这样的事情

http://jsfiddle.net/BAVzC/3/

然后,您可以将粘贴复制到文本文件中。

答案 2 :(得分:1)

只需几点。

您可以使用jquery函数(例如html

)获取页面一部分的整个内部html

您可以使用ajax将其发送到您的服务器。

您可以编写一个http处理程序来在服务器上接收它。由于您只打算将其保存为固定格式的html文件,因此不需要其他任何内容。我不会使用页面来避免创建所有控件的额外开销,并且页面将不会接收html输入,除非您将ValidateRequest设置为“false”。