博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET 根据现有动态页面生成静态Html
阅读量:6616 次
发布时间:2019-06-24

本文共 2115 字,大约阅读时间需要 7 分钟。

转自:http://www.cnblogs.com/PFly/p/4414342.html

 

    现有动态页面的格式都是类似 pageName.aspx?ID=1的格式,后面由于发布服务器的原因,要求将动态页面转为静态html后上传。

    首先根据页面生成的格式,枚举获取页面html:

1             foreach (var page in pageList)2             {3                 string html = ReadHtml(string.Format("pageName.aspx?ID={0}", page.ID));4                 html = ReplaceListAndSingle(html);5                 WriteHtml(string.Format("pageName_{0}.html", page.ID), html);6             }

读取asp.net页面:

public static string ReadHtml(string sourceurl)        {            try            {                System.Net.WebRequest myRequest = System.Net.WebRequest.Create(sourceurl);                System.Net.WebResponse myResponse = myRequest.GetResponse();                using (Stream stream = myResponse.GetResponseStream())                {                    using (StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("utf-8")))                    {                        return sr.ReadToEnd();                    }                }            }            catch (Exception ex)            { throw new Exception(string.Format("ReadHtml出错:{0}", ex.Message)); }        }

使用正则替换页面内的动态链接:

public static string ReplaceListAndSingle(string html)         {            html = Regex.Replace(html, @"_list\.aspx\?ID=(\d*)", "_list_$1.html", RegexOptions.IgnoreCase);            html = Regex.Replace(html, @"_single\.aspx\?ID=(\d*)", "_single_$1.html", RegexOptions.IgnoreCase);            return html.Replace(".aspx", ".html");        }

动态页面格式为 pageName_list.aspx?ID=1 与 pageName_single.aspx?ID=1,正则替换后变为静态格式:pageName_list_1.html 与 pageName_single_1.html。

 

将替换后的页面html写入文件:

public static bool WriteHtml(string url, string html)        {            try            {                using (StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath(url), false, Encoding.GetEncoding("utf-8")))                {                    sw.WriteLine(html);                    sw.Close();                }                return true;            }            catch (Exception ex)            { throw new Exception(string.Format("WriteHtml出错:{0}", ex.Message)); }        }

 

你可能感兴趣的文章
这些国货,在阿里平台上被美国剁手党抢疯了
查看>>
《Excel 职场手册:260招菜鸟变达人》一第 2 招 常用快捷键Windows与Mac对照
查看>>
《Greenplum企业应用实战》一第1章 Greenplum简介1.1 Greenplum的起源和发展历程
查看>>
开源世界已成围城:成本让企业蜂拥而来,也让企业退缩转投
查看>>
嵌入式实时应用开发实战(原书第3版)》——3.3 保护模式架构
查看>>
《Python编程快速上手——让繁琐工作自动化》——1.4 在变量中保存值
查看>>
Git 两分钟指南
查看>>
想改进你的卷积神经网络?看看这14种设计模式!
查看>>
安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(六)
查看>>
[LeetCode]--100. Same Tree
查看>>
阿里蒋晓伟谈流计算和批处理引擎Blink,以及Flink和Spark的异同与优势
查看>>
快速掌握Redis——第二招:安装
查看>>
从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(一)
查看>>
Windows 10之 隐藏“此电脑”窗口的6个额外文件夹
查看>>
15.1异常处理
查看>>
HAProxy负载均衡web服务
查看>>
初学者学习Linux之NFS
查看>>
Rabbitmq学习(一) Rabbitmq初探
查看>>
8月第一周B2B类网站排名:阿里巴巴持续领先
查看>>
IDC评述网:12月下旬国内域名注册商净增量Top10
查看>>