苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

分布式系统框架(V1.3) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper万能框架(V2.3) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V1.9) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 442|回复: 1

[框架] 分享一下c#RazorEngine的源码,做动态模版和生成静态化的好办法

[复制链接]
发表于 2019-3-8 12:37:04 | 显示全部楼层 |阅读模式
分享一下c#RazorEngine的源码,做动态模版和生成静态化的好办法

源码如下
QQ截图20190308123125.png

使用方法也很简单
baseModel
[C#] 纯文本查看 复制代码
 /// <summary>
    /// 基础Model
    /// </summary>
    public class BaseModel
    {
        private int Siteid = 0;
        /// <summary>
        /// 基础Model的重构方法,需要网站ID
        /// </summary>
        /// <param name="_siteid"></param>
        public  BaseModel(int _siteid)
        {
            Siteid = _siteid;
        }
        /// <summary>
        /// 获取对应的Title
        /// </summary>
        /// <returns></returns>
        public string GetTitle()
        {
            return Siteid.ToString() + "中国建站第一品牌,十分钟满足您所有的需求";
        }
        public List<string> getList(int n)
        {
            List<string> list = new List<string>();
            for (int i = 0; i < n; i++)
            {
                list.Add(i.ToString() + "a1dDLDFDFfdFFFFs22");
            }
            return list;
        }

    }


模版
[C#] 纯文本查看 复制代码
<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=7" />
    <meta name="Copyright" content="ruituoyun.com" />
    <meta name="apple-itunes-app" content="app-id=546639559" />
    <title>@Model.GetTitle()</title>
    <meta name="keywords" content="" />
    <meta name="description" content="中国建站第一品牌,,安全,稳定,快速,成本低,服务好!" />
</head>
<body>
    @foreach (var item in Model.getList(12))
    {

    <br /><br /> <div> @item</div><br />
    
        <div>下面是小写<br/> @item.ToLower()</div>
    }

</body>
</html>

测试代码
[C#] 纯文本查看 复制代码
   //模板
            string cshtml = string.Empty;
            //处理后的aspx页岩面
            string straspx = string.Empty;
            //读取文件
            using (StreamReader sr = new StreamReader(@"D:\text.cshtml"))
            {
                cshtml = sr.ReadToEnd();
            }
            //生成aspx页面内容
            straspx = RazorBuilder.CshtmlToAspx(cshtml, EnumBaseModel.BaseModel);
            Response.Clear();
            Response.Write(straspx);
            Response.End();


效果
QQ截图20190308123645.png

源码下载
RazorEngine.zip (183.04 KB, 下载次数: 1)
发表于 2019-3-13 08:15:53 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备17001017号-1 )

GMT+8, 2019-3-24 07:05

© 2017-2018

快速回复 返回顶部 返回列表