代码:
using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Text;using System.Threading.Tasks;namespace Framework.Common{ public class StaticPage { ////// html模板地址 /// public string TemplateUrl { get; set; } ////// 生成html保存地址 /// public string DestinationUrl { get; set; } ////// 要替换的键值对 /// public Hashtable KValues { get; set; } public StaticPage() { } public StaticPage(string templateUrl, string destinationUrl, Hashtable kValues) { this.TemplateUrl = templateUrl; this.DestinationUrl = destinationUrl; this.KValues = kValues; } public bool Save() { bool _isOk = false; WebResponse response = WebRequest.Create(TemplateUrl).GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8)) { string tempContent = reader.ReadToEnd(); foreach (string item in KValues.Keys) { tempContent = tempContent.Replace("{ " + item.ToString() + "}", KValues[item].ToString()); } using (StreamWriter write = new StreamWriter(DestinationUrl, false, System.Text.Encoding.UTF8)) { write.Write(tempContent); write.Flush(); write.Close(); _isOk = true; } } return _isOk; } }}
使用:
Models.OfficialStoryInfo item = OfficialStoryInfoBLL.GetEntity(id); string tempUrl = HttpContext.Current.Server.MapPath("~/temp/officialstory.txt"); string destUrl = HttpContext.Current.Server.MapPath("~/html/OfficialStory/" + item.ID + ".html"); System.Collections.Hashtable ht = new System.Collections.Hashtable(); ht.Add("title", item.Name); ht.Add("contents", item.Description); bool isok = new Common.StaticPage() { DestinationUrl = destUrl, KValues = ht, TemplateUrl = tempUrl }.Save();