【问题标题】:Using Razor without MVC [duplicate]在没有 MVC 的情况下使用 Razor [重复]
【发布时间】:2011-06-16 01:16:23
【问题描述】:

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

我知道我可以直接使用核心 Razor 引擎,但我还发现了几个项目可以让直接使用 Razor 变得更容易。喜欢:

  1. Rick Strahl 的 Razor 托管模板 引擎- http://www.west-wind.com/weblog/posts/864461.aspx
  2. GitHub 上的 Razor 引擎 - https://github.com/Antaris/RazorEngine

有人对在 MVC 之外使用 Razor 作为独立模板引擎有任何指导吗?对这些包装器项目有任何经验吗?还有其他我应该研究的 Razor 托管实现吗?

【问题讨论】:

    标签: c# asp.net-mvc razor


    【解决方案1】:

    如果你想从razor模板生成真实的内容,你可以使用RazorEngine

    【讨论】:

    • 该链接在原始问题中。
    【解决方案2】:

    发现 Jaap Lamfers 的一个非常不错的库:

    Razor 2.0 template engine, supporting layouts (on CodeProject)

    RazorMachine (on GitHub)

    品质:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我想我会检查一下。使用起来非常简单!谢谢!
      【解决方案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());
        

      【讨论】:

      • 简单在我的书中占据了一席之地。感谢您放弃这个@Simon_Weaver!你看起来像是一个可能只是和@JonSkeet 一起出去玩的人,你有这么多的信誉! :-) 挖掘所有答案是值得的。 :-)
      【解决方案5】:

      有一篇关于如何使用 RazorEngine 的好帖子: How to create a localizable text template engine using RazorEngine

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-02
          • 1970-01-01
          • 1970-01-01
          • 2019-03-26
          • 2020-05-04
          • 2010-10-23
          • 2017-03-14
          • 2012-03-06
          相关资源
          最近更新 更多