小議ASP.NET模板引擎技術的使用
我們將從PHP模板引擎技術談談ASP.NET模板引擎技術,希望通過本文的例項和程式碼,能讓大家在今後的開發過程中更加靈活的運用ASP.NET模板引擎技術。
以前聽我朋友說起php的模板引擎技術的時候似懂非懂哪時感覺真的很強,一直在想asp.net有這種技術嗎?我不知道我的理解是不是對的.其實asp.net模板引擎技術就是先建好一個靜態的html頁面我們稱它為模板頁,你如果有不同形式的頁面哪就得建立不同的靜態模板頁,然後在後臺用檔案操作往這個檔案裡寫東西然後在把這個模板頁另存到一個靜態頁面的目錄,不好意思可能我的理解太俗,如果有更好的理解和想法可以在apolov發文章告訴我謝謝。現在我附加一下程式碼
Default.aspx這個頁面只有幾個textbox控制元件和兩個按妞控制元件
- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" ValidateRequest="false" Inherits="ToHtml._Default" %>
- nbsp;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("恭喜+fileName+" target=_blank>"+fileName+"已經生成,儲存在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("恭喜 + fileName + " target=_blank>" + fileName + "已經生成,儲存在htm資料夾下!");
- }
- }
- }
- }
原文標題:Asp.net模板引擎技術
連結:http://www.cnblogs.com/resoar/archive/2009/10/09/1579370.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-616545/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 艾偉_轉載:ASP.NET模板引擎技術ASP.NET
- Express 文件(使用模板引擎)Express
- 模板引擎使用詳解:包含公共模板
- 小程式模板的使用
- 前端模板引擎doT.js的使用前端JS
- THINKPHP 模板技術PHP
- Java 模板技術Java
- Spring中的模板技術Spring
- Flask 使用Jinja2模板引擎Flask
- Velocity模板技術
- .net 開源模板引擎jntemplate 教程:基礎篇之在ASP.NET MVC中使用JntemplateASP.NETMVC
- Django 模板引擎以及模板Django
- JS模板引擎JS
- 小程式如何使用共用的WXML模板XML
- 小議20080304Oracle技術日Oracle
- Spring Boot 揭祕與實戰(七) 實用技術篇 – FreeMarker 模板引擎Spring Boot
- Spring Boot 揭祕與實戰(七) 實用技術篇 - FreeMarker 模板引擎Spring Boot
- 小程式的模板與元件的基本使用元件
- InnoDB儲存引擎——Checkpoint技術儲存引擎
- Thymeleaf(Java模板引擎)Java
- Python 模板引擎Python
- PHP模板引擎simplePhpTmpPHP
- JavaScript 模板引擎概述JavaScript
- 開發Webview的技術,小的技術知識點WebView
- Lynx技術分析-JS引擎擴充套件技術基礎JS套件
- 給技術人員一些技術以外的建議
- 開源搜尋技術的核心引擎 —— Lucene
- WCDMA的高速引擎 細解HSDPA技術(轉)
- PHP 模板引擎用到的核心方法PHP
- 非常好用的PHP模板引擎PHP
- 小團隊的技術管理
- 技術選型之Docker容器引擎Docker
- 閱讀優秀的JAVA模板引擎Beetl的使用說明有感Java
- 建立模板化的ASP.NET 使用者控制元件ASP.NET控制元件
- 手擼 JavaScript 模板引擎JavaScript
- PHPTAL模板引擎語法PHP
- ejs模板引擎原理JS
- java模板引擎:velocityJava