Razor 模板引擎的使用

Posted guohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Razor 模板引擎的使用相关的知识,希望对你有一定的参考价值。

安装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 模板引擎的使用的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net MVC开发基础学习笔记:三Razor视图引擎控制器与路由机制学习

Razor语法大全

Razor语法大全

ASP.NET MVC Route详解

ASP.NET MVC Route详解

使用Razor视图引擎来生成邮件内容