zoukankan      html  css  js  c++  java
  • asp.net 生成静态页面的简单例子

    Asp.net生成静态文件示例源码(两种途径)

    Asp.net生成静态文件(根据时间自动命名保持,默认扩展名是htm可以自行修改)。

    通过收入内容替换模板或者url地址两种方式进行静态文件的生成

    templete.htm为模板文件,htm为生成后的静态文件保持位置

    1 templete.htm代码如下:

    View Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title> $title$ 生成静态页的Demo|-www.chinasem.cn</title>
        <style type="text/css">
    <!--
    .STYLE1 {
        font-size: 16px;
        font-weight: bold;
    }
    -->
        </style>
    </head>
    <body>
    <br />
    <br />
    <table width="100%" border="0" bgcolor="#339900">
      <tr>
        <td height="34" align="center" bgcolor="#FFFFFF"><span class="STYLE1">$title$ </span></td>
      </tr>
      <tr>
        <td height="42" bgcolor="#FFFFFF"><br />
          <br />
        内容:$content$ </td>
      </tr>
    </table>
    <a href="http://www.chinasem.cn" target="_blank">www.chinasem.cn 版权所有</a>
    </body>
    </html>

    2 执行页面: Default.aspx页面代码:

    View Code
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" ValidateRequest="false" Inherits="ToHtml._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Asp.net生成静态页的两个Demo|-www.chinasem.cn</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            标题:<asp:TextBox ID="txtTitle" runat="server" Width="352px"></asp:TextBox><br />
            内容:<asp:TextBox ID="txtContent" runat="server" Height="179px" TextMode="MultiLine"
                Width="350px"></asp:TextBox><br />
            <br />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="根据模板生成" /><br />
            <br />
            <br />
            Url地址:<asp:TextBox ID="txtUrl" runat="server" ToolTip="请确认Url地址的存在" Width="359px"></asp:TextBox>
            <br />
            <br />
            <asp:Button ID="Button2" runat="server" Text="根据Url地址生成" OnClick="Button2_Click" /></div>
        </form>
    </body>
    </html>

    3 执行页面的后台代码: Default.aspx.cs

    View Code
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Net;
    using System.Text;
    using System.IO;
    
    namespace ToHtml
    {
        //chinasem.cn生成静态页演示文件,转载请保留该信息
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
               
            }
    
            //根据模板生成,保持在html文件夹中(部分源码搜集于网络)
            protected void Button1_Click(object sender, EventArgs e)
            {
                //源码是替换掉模板中的特征字符
    
                string mbPath =Server.MapPath("template.htm");
                Encoding code = Encoding.GetEncoding("gb2312");
                StreamReader sr = null;
                StreamWriter sw = null;
                string str = null;
    
                //读取
                try
                {
                    sr = new StreamReader(mbPath, code);
                    str = sr.ReadToEnd();
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sr.Close();
                }
    
                //根据时间自动重命名,扩展名也可以自行修改
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm";
                str = str.Replace("$title$", txtTitle.Text);//替换Title
                str = str.Replace("$content$", txtContent.Text);//替换content
    
                //生成静态文件
                try
                {
                    sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);
                    sw.Write(str);
                    sw.Flush();
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sw.Close();
                    Response.Write("恭喜<a href=htm/"+fileName+" target=_blank>"+fileName+"</a>已经生成,保存在htm文件夹下!");
                }
    
    
            }
    
    
            //根据Url地址生成静态页保持
            protected void Button2_Click(object sender, EventArgs e)
            {
                Encoding code = Encoding.GetEncoding("utf-8");
                StreamReader sr = null;
                StreamWriter sw = null;
                string str = null;
    
                //读取远程路径
                WebRequest temp = WebRequest.Create(txtUrl.Text.Trim());
                WebResponse myTemp = temp.GetResponse();
                sr = new StreamReader(myTemp.GetResponseStream(), code);
                //读取
                try
                {
                    sr = new StreamReader(myTemp.GetResponseStream(), code);
                    str = sr.ReadToEnd();
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sr.Close();
                }
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm";
    
                //写入
                try
                {
                    sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);
                    sw.Write(str);
                    sw.Flush();
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    sw.Close();
                    Response.Write("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!");
                }
    
            }
        }
    }

    代码下载!!!

  • 相关阅读:
    C/C++中的abort、atexit、exit和_Exit
    从QQ聊天看交流的有效性
    HDU 1711 Number Sequence (KMP)
    pintos操作系统thread部分的实现
    搜狗面试的经典题(C++map按值排序,class struct的差别)
    SQL学习之使用order by 依照指定顺序排序或自己定义顺序排序
    选中多个或全中订单逻辑
    HDU 4415 Assassin&#39;s Creed(贪心)
    ashx文件中使用session提示“未将对象引用设置到对象的实例”
    .NET运行机制
  • 原文地址:https://www.cnblogs.com/puzi0315/p/2599720.html
Copyright © 2011-2022 走看看