博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#.NET动态页面静态化生成
阅读量:5812 次
发布时间:2019-06-18

本文共 3077 字,大约阅读时间需要 10 分钟。

一,动态页面生成静态也的思路是怎样呢?

1》首先我们都是需要有一个静态模板,这模板的作用就是静态页的最基本模板,如下代码:

    $title$    

标题:$sgin$

内容开始:$content$
作者:$author$
时间:$time$
结束

那代码中的$content$等标识是用来替换的标识

2》我们建一个MVC项目,在HomeControllor中的代码,如下:

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Web;using System.Web.Mvc;using System.Xml;namespace DynamicCreateStaticHtml.Controllers{    public class HomeController : Controller    {        public ActionResult Index()        {            string htmlName = WriteFile(new HtmlModel()            {                Title = "生成静态页面",                Content = "动态自动生成静态页面并赋值的方法",                Author = "admin",                Time = DateTime.Now.ToString(),                Sgin = "生成静态页面"            });            if (!string.IsNullOrWhiteSpace(htmlName))            {                return Redirect("/StaticHtml/" + htmlName + ".html");            }            else            {                return Content("生成页面出错");            }        }        ///         /// 动态生成静态方法        ///         ///         /// 
public string WriteFile(HtmlModel model) { //获取当前项目的文档物理路径,用于生产静态HTML页面存地址 string path = Server.MapPath("./StaticHtml/"); //gb2312简体中文编码 Encoding code = Encoding.GetEncoding("gb2312"); // 读取模板文件,在项目下的文件 string temp = Server.MapPath("/StaticHtml/HtmlTemp.html"); StreamReader sr = null; StreamWriter sw = null; string str = ""; string htmlfilename = Guid.NewGuid().ToString(); try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); // 读取文件 //替换内容,模板文件已经读入到名称为str的变量中了 str = str.Replace("$title$", model.Title); //模板页中的title str = str.Replace("$sgin$", model.Sgin); //模板页中的sgin str = str.Replace("$content$", model.Content); //模板页中的content str = str.Replace("$author$", model.Author);//模板页中的author str = str.Replace("$time$", model.Time); //模板页中的time // 写文件 sw = new StreamWriter(path + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { } finally { sw.Close(); sr.Close(); //必须关闭静态文件链接,要不然会报错 } return htmlfilename; } /// /// 替换实体 /// public class HtmlModel { public string Title { get; set; } public string Sgin { get; set; } public string Content { get; set; } public string Author { get; set; } public string Time { get; set; } } }}

3》由以上代码我们可以看到,我们将静态模板的标识替换成我们要显示的标识,然后返回这个页面,这也是动态页面静态话生成的核心思路,但是我们要注意模板的文件连接需要close,要不然可能会导致文件已占用的错误

 

 

 

转载于:https://www.cnblogs.com/May-day/p/5412068.html

你可能感兴趣的文章
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
iOS - UIViewController
查看>>
IntPtr 转 string
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
USNews大学排名遭美国计算机研究学会怒怼,指排名荒谬要求撤回
查看>>
struts1——静态ActionForm与动态ActionForm
查看>>
七大关键数据 移动安全迎来历史转折点
查看>>
在AngularJS中学习javascript的new function意义及this作用域的生成过程
查看>>
盘点物联网网关现有联网技术及应用场景
查看>>