C# asp.net表单转换为html文件,保存控件内容

C# asp.net表单转换为html文件,保存控件内容,c#,asp.net,C#,Asp.net,我正在尝试将带有多个文本框和复选框的asp.net表单保存到html文件中 问题是,即使我为这些控件启用了回发/查看状态,但当我这样做时(当用户按下提交按钮时),文本框的内容和复选框的状态都不会保存 看起来您正在为“currentPageUrl”创建一个全新的HttpRequest。这与打开一个新浏览器并请求该URL基本相同:这是一个全新的请求,没有viewstate。这就是为什么它会返回一个全新的响应,没有填写任何值 当然,您是从页面自己的代码中触发请求的。然而,Web服务器并不知道这一点——

我正在尝试将带有多个文本框和复选框的asp.net表单保存到html文件中

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


看起来您正在为“currentPageUrl”创建一个全新的HttpRequest。这与打开一个新浏览器并请求该URL基本相同:这是一个全新的请求,没有viewstate。这就是为什么它会返回一个全新的响应,没有填写任何值

当然,您是从页面自己的代码中触发请求的。然而,Web服务器并不知道这一点——它将完全按照您的要求执行:提供所请求页面的全新版本

编辑-更多信息:
有一件事可能会奏效(尽管我承认我没有尝试过),那就是在Render()执行后获取HttpResponse,并从Response.Output stream读取页面的完整内容。

Hoo你说得对,我正在保存一个全新的页面,我将尝试你在下面说的thx:)
        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();