http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 10539|回复: 12

[Asp.Net] asp.net中aspx页面生成Html页面的方法

[复制链接]
发表于 2013-12-16 11:18:22 | 显示全部楼层 |阅读模式

   有人找这东西,我发现网上一大片,找一个转过来了,呵呵

   在开发中我们有时候需要将ASP.NET中的.aspx页面转化成静态的页面进行相关的业务处理,网上搜索了不少方法,有一些方法的确是蛮不错的,也帮助了我,在此谢谢那些网友啦。我现在将其中的一个方法整理出来,与大家一起分享。

        首先,在项目根目录下建立一个静态的模板页,就叫它Template.htm。将这个页面排版成你以后要生成的静态的Html页面的格式。在这个例子中,我要将服务器端已经传送到客户端的.aspx页面(加班单)转化成Html静态页面,前去盖章审核。那么这个模板页就应该是加班单的样式。

         1360056626_6735.jpg

其Html网页代码是(一部分):

[HTML] 纯文本查看 复制代码
<table border="0" cellpadding="3" cellspacing="1" align="center"style="background-color:Black; height: 300px; width: 724px;">     
            <tr style="color:Black; background-color:White">  
                <td style="width:150px; text-align:center"><font size="2">部门:</font></td>      
                <td style="width:200px; text-align:left"><font size="2">$Department$</font></td>      
                <td style="width:150px;text-align:center""><font size="2">申请日期:</font></td>  
                <td style="width:200px; text-align:left"><font size="2">$ApplyTime$  
                </font></td>     
            </tr>      

将你要替换的部分用一个特殊的符号代替,例如例子中的$Department$。然后在网页上进行转化时可以根据这些符号进行替换,将相应的值替换这些特殊符号。

后台C#代码是:

[C#] 纯文本查看 复制代码
//将动态的ASP.NET页面转化成静态的页面
        private void CreateHtml()
        {
            try
            {
                //设置文件名
                string filename = lblApplyTime.Text.Replace("/", "-") + "-" + lblName.Text + ".html";
                //获取当前文件路径(服务器端)
                string path = HttpContext.Current.Server.MapPath(@"~/WebManage/Template.htm");
                //通过路径获取模板文件内容
                using (StreamReader r = new StreamReader(path))
                {
                    String line = null;
                    //大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder
                    StringBuilder str = new StringBuilder();    
                    //开始读取模板文件内容
                    while ((line = r.ReadLine()) != null)
                    {
                        str.AppendLine(line);//这里就是一行一行的拼接字符串
                    	  }
                 r.Close();
                 str.Replace("$Department$", lblDepartment.Text);//开始替换文本
                    str.Replace("$ApplyTime$", lblApplyTime.Text);
                 str.Replace("$Name$", lblName.Text);
                 str.Replace("$WorkDate$", lblWorkTime.Text);
                 str.Replace("$WorkTime$", lblWorkTime.Text);
                 str.Replace("$Reason$", lblReason.Text);
                 //设置文件路径
                    string htmlpath = HttpContext.Current.Server.MapPath("~/HtmlFile/");
                 string paths = htmlpath + filename;
                 //实例化,并制定文件名称规则和生成文件路径
                    StreamWriter w = new StreamWriter(paths, false, Encoding.GetEncoding("utf-8"));
                 w.Write(str);//这里才真正开始创建文件
                    w.Close();//关闭
                    w.Dispose();
                }
            }
            catch (Exception ex)
            {
                Response.Write("<script>alert('" + ex.Message + "');</script>");
            }
           
        }




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-12-16 11:27:58 | 显示全部楼层
强烈支持楼主ing……
发表于 2013-12-16 12:58:43 | 显示全部楼层
感谢飞哥分享
发表于 2013-12-16 16:01:58 | 显示全部楼层
模板里  存在的汉字   生成静态文件后  都成 “ ????” 号了  这是个什么情况啊?

 楼主| 发表于 2013-12-16 16:03:38 | 显示全部楼层
网站网页 发表于 2013-12-16 16:01
模板里  存在的汉字   生成静态文件后  都成 “ ????” 号了  这是个什么情况啊?

这是你编码问题,你把编码统一一下就行了。
发表于 2013-12-16 16:04:38 | 显示全部楼层
模板里  存在的汉字   生成静态文件后  都成 “ ????” 号了  这是个什么情况啊?
发表于 2013-12-16 16:06:07 | 显示全部楼层
站长苏飞 发表于 2013-12-16 16:03
这是你编码问题,你把编码统一一下就行了。

编码是统一的哟  


都是 gb2312  的嘛

 楼主| 发表于 2013-12-16 16:06:57 | 显示全部楼层
肯定没有统一,要不然不会出现这问题,你换个别的试试,只换生成端不换页面,你页面上不是写成什么编码就是什么编码,而是你创建时指定的。
 楼主| 发表于 2013-12-16 16:07:16 | 显示全部楼层
这个就没有几种编码你都试试就明白了
发表于 2013-12-16 16:50:46 | 显示全部楼层
站长苏飞 发表于 2013-12-16 16:07
这个就没有几种编码你都试试就明白了

唉 - -  这时对时错    真无语 - -

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-6-2 01:12

© 2014-2021

快速回复 返回顶部 返回列表