开发者

Using Razor without MVC [duplicate]

开发者 https://www.devze.com 2023-02-06 17:41 出处:网络
This question already has answers here: Is it possible to use Razor View Engine outside asp.net (6 answers)
This question already has answers here: Is it possible to use Razor View Engine outside asp.net (6 answers) 开发者_运维技巧 Closed 2 years ago.

I need to merge templates with data to create unique strings at runtime. It was suggested that I look at the Razor templating view engine that comes in ASP.NET MVC 3. Looks great, but I need to use it outside of MVC view creation.

I know I can use the core Razor engine directly, but I've also found a couple of projects that make using Razor directly easier. Like:

  1. Rick Strahl's Razor Hosting Template Engine- http://www.west-wind.com/weblog/posts/864461.aspx
  2. Razor Engine on GitHub - https://github.com/Antaris/RazorEngine

Does anyone have any guidance on using Razor outside of MVC as a standalone template engine? Any experience with these wrapper projects? are there other Razor hosting implementations I should look into?


You may take a look at the following blog post which illustrates how you could use the Razor view engine to render a template to a string.


Look at RazorTemplates library. It's more lightweight than RazorEngine library, it's thread-safe and has very nice minimal interface.


If you want to generate real content from razor template, you can use RazorEngine.


Phil Haack posted about this way to do it using a generated class.

  • You create a .cshtml file and then use a compile time extension on the file to generate a class. Then you can just do this:

    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());
    


There is a nice post how to use RazorEngine: How to create a localizable text template engine using RazorEngine


Found a really nice library by Jaap Lamfers:

Razor 2.0 template engine, supporting layouts (on CodeProject)

RazorMachine (on GitHub)

Qualities:

  • support _ViewStart
  • support Layout
  • extensible (supports something like MVC ViewEngines)
  • contains samples
  • lots of unit tests
  • it is well documented (see CodeProject link)
0

精彩评论

暂无评论...
验证码 换一张
取 消