zoukankan      html  css  js  c++  java
  • 转:Asp.net模板引擎技术(html)

    以前听我朋友说起php的模板引擎技术的时候似懂非懂哪时感觉真的很 强,一直在想asp.net有这种技术吗?我不知道我的理解是不是对的.其实asp.net的模板引擎技术就是先建好一个静态的html页面我们称它为模 板页,你如果有不同形式的页面哪就得建立不同的静态模板页,然后在后台用文件操作往这个文件里写东西然后在把这个模板页另存到一个静态页面的目录,不好意 思可能我的理解太俗,如果有更好的理解和想法可以在apolov发文章告诉我谢谢。现在我附加一下代码

    Default.aspx这个页面只有几个textbox控件和两个按妞控件

    <%@ 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生成静态页</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>

    要准备的模板页代码,htm文件页面比较简单,如果有兴趣的朋友可以做成更复杂的模板页嘿嘿

    !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$ 生成静态页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>

    </body>
    </html>

    后台生成静态页面的代码Default.aspx.cs主要用到了文件操做

    sing 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
    {
        //51aspx.com生成静态页演示文件,转载请保留该信息
        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") + ".html";

                //写入
                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文件夹下!");
                }

            }
        }
    }

  • 相关阅读:
    年轻人的第一个 Spring Boot 应用,太爽了!
    面试问我 Java 逃逸分析,瞬间被秒杀了。。
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    坑爹的 Java 可变参数,把我整得够惨。。
    6月来了,Java还是第一!
    Eclipse 最常用的 10 组快捷键,个个牛逼!
    Spring Cloud Eureka 自我保护机制实战分析
    今天是 Java 诞生日,Java 24 岁了!
    厉害了,Dubbo 正式毕业!
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1598229.html
Copyright © 2011-2022 走看看