Using Razor without MVC [duplicate]

2019-01-10 20:38发布

Possible Duplicate:
Is it possible to use Razor View Engine outside asp.net

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?

6条回答
神经病院院长
2楼-- · 2019-01-10 20:46

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

查看更多
Explosion°爆炸
3楼-- · 2019-01-10 20:49
爱情/是我丢掉的垃圾
4楼-- · 2019-01-10 20:55

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.

查看更多
放我归山
5楼-- · 2019-01-10 21:00

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());
    
查看更多
地球回转人心会变
6楼-- · 2019-01-10 21:06

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

RazorEngine

Razor Template outside MVC project

查看更多
爱情/是我丢掉的垃圾
7楼-- · 2019-01-10 21:06

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)
查看更多
登录 后发表回答