1. 程式人生 > >Razor 模板引擎的使用

Razor 模板引擎的使用

包括 對象 直接 ren rdquo lai type content tmp

安裝Razor的模板引擎,通過vs的“擴展管理器”,查找"RazorEngine"並安裝。安裝的dll包括”RazorEngine.dll“和”System.Web.Razor.dll“

下載:RazorEngine

主要使用RazorEngine.Razor 類下的靜態方法Parse(string razorTemplate, object model)方法,razorTemplate是模板文本,model是數據對象。

1>定義實體類

public class Articles
{
    /// <summary>
    /// 文章ID
    /// </summary>
    public int Id { get; set; }
    /// <summary>
    /// 文章標題
    /// </summary>
    public string Title { get; set; }
    /// <summary>
    /// 文章內容
    /// </summary>
    public string Content { get; set; }
    /// <summary>
    /// 作者
    /// </summary>
    public string Author { get; set; }
    /// <summary>
    /// 發布時間
    /// </summary>
    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 = @"<h1>@Model.Title</h1> <p>作者:@Model.Author - 發布時間:@Model.CreateDate</p> <p>@Raw(Model.Content)</p>"; string html = RazorEngine.Razor.Parse(razorTmpl, model); HttpContext.Current.Response.Write(html); } public bool IsReusable { get { return false; } } }

  razor.cshtml

  <h1>@Model.Title</h1>
    <p>作者:@Model.Author - 發布時間:@Model.CreateDate</p>
    <p>@Raw(Model.Content)</p>

  

Razor 模板引擎的使用