zoukankan      html  css  js  c++  java
  • 如何将ASP.NET页面保存为HTML文件

    以下为实现代码:
            /// <summary>
            /// 将文件保存为
            /// </summary>
            /// <param name="uri">请求的地址</param>
            /// <param name="queryString">查询字符串</param>
            /// <param name="targetFilePath">保存的文件路径</param>
            public static void SavePage(System.Uri uri, string queryString, string targetFilePath)
            {
                //用于保存文件的流
                System.IO.FileStream stream = null;

                //用于保存写入队对象
                System.IO.TextWriter writer = null;

                try
                {
                    //创建Http请求
                    HttpRequest request = new HttpRequest(uri.AbsolutePath, uri.AbsoluteUri, queryString);

                    //创建保存的文件流
                    stream = new System.IO.FileStream(targetFilePath, System.IO.FileMode.Create);

                    //创建文件写入对象
                    writer = new System.IO.StreamWriter(stream, System.Text.UTF8Encoding.UTF8);

                    //创建Http反馈
                    HttpResponse Response = new HttpResponse(writer);

                    //创建Http上下文
                    HttpContext context = new HttpContext(request, Response);

                    //添加Session
                    context.Items.Add("AspSession", HttpContext.Current.Session);

                    //创建页面分析器
                    System.Web.IHttpHandler handler = System.Web.UI.PageParser.GetCompiledPageInstance(uri.AbsolutePath,
                        HttpContext.Current.Server.MapPath(uri.AbsolutePath), context);

                    //执行请求
                    handler.ProcessRequest(context);

                    //写入信息
                    writer.Flush();

                    //关闭
                    writer.Close();
                }
                finally
                {
                    //关闭写入器
                    if (null != writer)
                    {
                        writer.Dispose();
                    }

                    //关闭流
                    if (null != stream)
                    {
                        //关闭
                        stream.Dispose();
                    }
                }
            }
    需要注意的是Session的传递,如果不传递Session,那么与Session相关的数据就无法获得了。

  • 相关阅读:
    flask路由(2)
    flask(1)
    了解websocket协议
    理解python的queue&deque
    oracle sqlplus中使用spool生成美化的html网页
    Oracle自动生成html格式awr的报告
    oracle data guard备库备份恢复
    【翻译自mos文章】DBA_JOBS 和 DBA_JOBS_RUNNING 不同的结果的解释
    ORA-23421: job number 225 is not a job in the job queue
    ORA-23421: job number 225 is not a job in the job queue
  • 原文地址:https://www.cnblogs.com/zengezenge/p/822954.html
Copyright © 2011-2022 走看看