使用没有MVC的Razor

时间:2011-01-26 18:24:07

标签: c# asp.net-mvc razor

  

可能重复:
  Is it possible to use Razor View Engine outside asp.net

我需要将模板与数据合并以在运行时创建唯一的字符串。有人建议我查看ASP.NET MVC 3中的Razor模板视图引擎。看起来很棒,但我需要在MVC视图创建之外使用它。

我知道我可以直接使用核心Razor引擎,但我也发现了一些使Razor更容易使用的项目。像:

  1. Rick Strahl的剃刀托管模板 发动机- http://www.west-wind.com/weblog/posts/864461.aspx
  2. GitHub上的Razor Engine - https://github.com/Antaris/RazorEngine
  3. 有没有人有任何关于在MVC之外使用Razor作为独立模板引擎的指导?有这些包装项目的经验吗?我应该研究其他Razor托管实现吗?

6 个答案:

答案 0 :(得分:7)

您可以查看following blog post,其中说明了如何使用Razor视图引擎将模板呈现为字符串。

答案 1 :(得分:7)

如果您想从剃刀模板生成真实内容。请使用RazorEngine。

RazorEngine

Razor Template outside MVC project

答案 2 :(得分:5)

查看RazorTemplates库。它比RazorEngine库更轻量级,它是线程安全的,并且具有非常好的最小接口。

答案 3 :(得分:4)

Phil Haack posted about this way to do it使用生成的类。

  • 您创建一个.cshtml文件,然后在该文件上使用编译时扩展来生成一个类。然后你可以这样做:

    var template = new RazorTemplate {
        Model = new[] { 
            new {Name = "Scott", Id = 1},
            new {Name = "Steve", Id = 2},
            new {Name = "Phil", Id = 3},
            new {Name = "David", Id = 4}
        }
    };
    Console.WriteLine(template.TransformText());
    

答案 4 :(得分:2)

有一篇很好的文章如何使用RazorEngine: How to create a localizable text template engine using RazorEngine

答案 5 :(得分:2)

Jaap Lamfers找到了一个非常好的图书馆:

Razor 2.0 template engine, supporting layouts (on CodeProject)

RazorMachine (on GitHub)

特性:

  • 支持_ViewStart
  • 支持布局
  • 可扩展(支持类似MVC ViewEngines)
  • 包含样本
  • 大量单元测试
  • 有详细记录(参见CodeProject链接)