在字符串上使用Razor引擎 – 而不是视图

我想使用没有视图(cshtml)文件的Razor引擎,但是在字符串上。 我想从MVC中做到这一点,我见过使用过的例子

new RazorViewEngine().Render 

但是我找不到渲染方法,它是从MVC的旧时代开始的吗?

我也看过使用Razor.Parse的例子,但我也找不到它 – 可能错过了一个引用(但是如果我已经使用MVC那就应该存在,对吧?)

如果我需要做的就是在HTML字符串中注入3-4个参数,是否可以使用Razor? 我觉得我现在对MVC有点迷恋,可能不会直接思考。 我打算在内存中缓存HTML字符串,只从DB中传入模型。

谢谢

你可以看看RazorEngine 。

要使用RazorEngine解析字符串,您需要RazorEngine.dll,可以从http://razorengine.codeplex.com/下载。

要使用Razor引擎解析字符串,只需使用以下示例:

 var model = new { Name = "Test" }; var template = "Hello @Model.Name"; var result = Razor.Parse(template, model); 

至于是否建议使用它来解析字符串,实际上取决于你使用它的原因。 如果你认为你需要Razor提供的灵活性,我会推荐它,但是当它与标准的字符串替换相比时它会带来一点性能损失。

有一个带有Parse方法的RazorParser类 ,它将TextReader作为输入参数。 但是,整个System.Web.Razor.Parser命名空间标记为

此类型/成员支持.NET Framework基础结构,不应在代码中直接使用。

所以你必须自己弄清楚。