将Asp.net表单转换为HTML文件,保存控件内容

本文关键字:保存 控件 文件 HTML net Asp 表单 转换 | 更新日期: 2023-09-27 18:03:36

我试图将asp.net表单与多个文本框和复选框保存到html文件。

问题是,即使我为这些控件启用了postback/viewstate,当我这样做时(当用户按下提交按钮时),文本框的内容和复选框的状态也不会保存。

        WebClient myClient = new WebClient();
        string myPageHTML = null;
        byte[] requestHTML;
        // Gets the url of the page
        string currentPageUrl = Request.Url.ToString();
        UTF8Encoding utf8 = new UTF8Encoding();
        requestHTML = myClient.DownloadData(currentPageUrl);
        myPageHTML = utf8.GetString(requestHTML);
        ///////////////
        System.IO.StreamWriter file = new System.IO.StreamWriter("c:''test.html");
        file.WriteLine(myPageHTML);
        file.Close();

将Asp.net表单转换为HTML文件,保存控件内容

看起来你正在为"currentPageUrl"创建一个全新的HttpRequest。这本质上与打开一个新浏览器并请求那个URL是一样的:它是一个全新的请求,没有视图状态。这就是为什么它返回一个全新的响应,没有填写任何值。

当然,您是从页面自己的后台代码中触发请求的。然而,web服务器并不知道这一点——它将完全按照你的请求做:提供一个全新版本的请求页面。

EDIT - more info:一件可能有效的事情(尽管我承认我没有尝试过)是在Render()执行后抓取HttpResponse,并从Response中读取页面的完整内容。输出流。