安装 Razor 的模板引擎, 通过 vs 的 "扩展管理器", 查找 "RazorEngine" 并安装. 安装的 dll 包括 "RazorEngine.dll" 和 "System.web.Razor.dll"
下载: https://files.cnblogs.com/files/guohu/RazorEngine.zip
主要使用 RazorEngine.Razor 类下的静态方法 Parse(string razorTemplate, object model) 方法, razorTemplate 是模板文本, model 是数据对象.
1> 定义实体类
- public class Articles
- {
- ///
- /// 文章 ID
- ///
- public int Id { get; set; }
- ///
- /// 文章标题
- ///
- public string Title { get; set; }
- ///
- /// 文章内容
- ///
- public string Content { get; set; }
- ///
- /// 作者
- ///
- public string Author { get; set; }
- ///
- /// 发布时间
- ///
- public DateTime CreateDate { get; set; }
- }
2> 一般处理程序
razorTemplate 模板文本可以直接拼接, 一般模板文本写到. cshtml 的 html 文件中.
<%@ WebHandler Language="C#" Class="razor" %>
- using System;
- using System.Web;
- public class razor : IHttpHandler
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- var model = new Articles()
- {
- Id = 1,
- CreateDate = DateTime.Now,
- Title = "Razor 代码生成器",
- Content = "代码生成器内容",
- Author = "ITPROBIE.COM"
- };
- //string path = HttpContext.Current.Server.MapPath("razor.cshtml");
- //string razorTmpl = System.IO.File.ReadAllText(path);
- // 和直接从 razor.cshtml 读取的内容是一样的
- string razorTmpl = @"
- @Model.Title
> 作者:@Model.Author - 发布时间:@Model.CreateDate
- @Raw(Model.Content)
- ";
- string html = RazorEngine.Razor.Parse(razorTmpl, model);
- HttpContext.Current.Response.Write(html);
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
- razor.cshtml
- @Model.Title
来源: http://www.bubuko.com/infodetail-2732294.html