ASP.NET生成HTML静态页面实例
1 配置WEB.CONFIG
<appSettings> <!--保存静态页路径--> <add key="htmlPath" value="D:JunvalcreateHtmhtml"/></appSettings>
<appSettings> <!–保存静态页路径–> <add key="htmlPath" value="D:JunvalcreateHtmhtml"/> </appSettings>
2.创建模板页
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html> <head> <title>my_title</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="ProgId" content="VisualStudio.HTML"> <meta name="Originator" content="Microsoft Visual Studio .NET 7.1"> </head> <body> 生成时间:my_time <br> 作者: my_name <br> <hr> 替换的正文:my_body <h2> [ DllImport( "kernel32", EntryPoint="GetVersionEx" )] DllImportAttribute特性的公共字段如下: 1、CallingConvention 指示向非托管实现传递方法参数时所用的 CallingConvention 值。 CallingConvention.Cdecl : 调用方清理堆栈。它使您能够调用具有 varargs 的函数。 CallingConvention.StdCall : 被调用方清理堆栈。它是从托管代码调用非托管函数的默认约定。 2、CharSet 控制调用函数的名称版本及指示如何向方法封送 String 参数。 此字段被设置为 CharSet 值之一。如果 CharSet 字段设置为 Unicode,则所有字符串参数在传递到非托管实现之前都转换成 Unicode 字符。</h2> </body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>my_title</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="ProgId" content="VisualStudio.HTML"> <meta name="Originator" content="Microsoft Visual Studio .NET 7.1"> </head> <body> 生成时间:my_time <br> 作者: my_name <br> <hr> 替换的正文:my_body <h2> [ DllImport( "kernel32", EntryPoint="GetVersionEx" )] DllImportAttribute特性的公共字段如下: 1、CallingConvention 指示向非托管实现传递方法参数时所用的 CallingConvention 值。 CallingConvention.Cdecl : 调用方清理堆栈。它使您能够调用具有 varargs 的函数。 CallingConvention.StdCall : 被调用方清理堆栈。它是从托管代码调用非托管函数的默认约定。 2、CharSet 控制调用函数的名称版本及指示如何向方法封送 String 参数。 此字段被设置为 CharSet 值之一。如果 CharSet 字段设置为 Unicode,则所有字符串参数在传递到非托管实现之前都转换成 Unicode 字符。</h2> </body> </html>
3. 写静态页类
using System;using System.IO;namespace Junval.createHtm{ /// <summary> /// ExcetueHtm 的摘要说明。 /// </summary> public class ExcetueHtm { private string sId; //需要生成静态页的数据ID private string sTemp; //需要生成静态页的模板名称 public ExcetueHtm() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 设置ID属性 /// </summary> public string ID { get { return sId; } set { sId = value; } } public string Temp { get { return sTemp; } set { sTemp = value; } } /// <summary> /// 生成静态页面 & nbsp;/// </summary> /// <returns></returns> public bool CreateHtml() { //存放HTML路径 string ls_path = System.Configuration.ConfigurationSettings.AppSettings["htmlPath"].ToString(); //选择模板 string ls_temp = ls_path + sTemp; System.IO.StreamReader Sr = null; System.IO.StreamWriter Sw = null; string str = ""; //读模板 try { Sr = new StreamReader(ls_temp, System.Text.Encoding.GetEncoding("GB2312")); str = Sr.ReadToEnd(); } catch (Exception ex) { System.Web.HttpContext.Current.Response.Write(ex.Message.ToString()); System.Web.HttpContext.Current.Response.End(); } finally { Sr.Close(); } string sFilename = sId.ToString() + ".htm"; //替换模板内容 str = ReplaceStr(str); //写vhtml try { Sw = new StreamWriter(ls_path + sFilename, false, System.Text.Encoding.GetEncoding("gb2312")); Sw.Write(str); Sw.Flush(); } catch (Exception ex) { System.Web.HttpContext.Current.Response.Write(ex.Message.ToString()); System.Web.HttpContext.Current.Response.End(); } finally { Sw.Close(); } return true; } private string ReplaceStr(string ls_str) { //根据模板 选择不通的替换函数 return TempNo_1(ls_str).ToString(); } //NO1模板替换方案 private string TempNo_1(string ls_str) { string ls_Tilte = "标题:一号模板替换方案"; string ls_time = DateTime.Now.ToString(); ls_str = ls_str.Replace("my_title", ls_Tilte); ls_str = ls_str.Replace("my_time", ls_time); ls_str = ls_str.Replace("my_name", "Junval Shi"); ls_str = ls_str.Replace("my_body", " ......"); return ls_str; } /// <summary> /// 生成静态页面 /// </summary> /// <param name="pid">需要生成静态页的数据ID</param> /// <param name="ptemp">需要生成静态页的模板名称</param> /// <returns></returns> public bool CreateHtml(string pid, string ptemp) { return true; } }}
<%@ Page language="c#" Codebehi nd="Main.aspx.cs" AutoEventWireup="false" Inherits="Junval.createHtm.Main" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML> <HEAD> <title>Main</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 88px" runat="server"></asp:TextBox> <asp:Button id="CreateHtml" style="Z-INDEX: 102; LEFT: 368px; POSITION: absolute; TOP: 88px" runat="server" Text="CreateHtml"></asp:Button> </form> </body></HTML>
CS:
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace Junval.createHtm{ /// <summary> /// Main 的摘要说明。 /// </summary> public class Main : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox TextBox1; protected System.Web.UI.WebControls.Button CreateHtml; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.CreateHtml.Click += new System.EventHandler(this.CreateHtml_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void CreateHtml_Click(object sender, System.EventArgs e) { string ls_id = TextBox1.Text.Trim(); ExcetueHtm CH = new ExcetueHtm(); CH.ID = ls_id; CH.Temp = "HTMLPage1.html"; if (CH.CreateHtml()) { Response.Write("<script>window.open('html/" + ls_id + ".htm','','');</script>"); } &nb sp; else { Response.Write("ErrEs"); } } }}
本博文章基本上属于原创或收集整理,都是心血结晶。
欢迎转载分享,转载请注明出处,谢谢!
本文地址:ASP.NET生成HTML静态页面实例