代码:
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 { /// <summary> /// html模板地址 /// </summary> public string TemplateUrl { get; set; } /// <summary> /// 生成html保存地址 /// </summary> public string DestinationUrl { get; set; } /// <summary> /// 要替换的键值对 /// </summary> 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();