2011-11-21 69 views
7

我想使用Razor引擎而不使用视图(cshtml)文件,但使用字符串。 我想从内部MVC做到这一点,我已经看到了使用在字符串上使用Razor引擎 - 不是视图

new RazorViewEngine().Render 

例子,但我找不到Render方法,它与MVC的旧日子的东西吗?

我也看到了使用Razor.Parse例子,但我找不到,要么 - 可能缺少引用(但它应该有,如果我使用MVC了,对不对?)

如果我需要做的只是将3-4个参数注入HTML字符串,那么使用Razor是否可取?我觉得我现在有点迷恋MVC,可能不会直截了当。我打算将HTML字符串缓存在内存中,并且只是从数据库传入模型。

谢谢

回答

3

你可以看看RazorEngine

+0

这似乎有点过头了 - 我觉得我应该能够做到这一点,没有这样一个巨大的外部库 - 但它看起来非常好。 但是 - 看着他们的[博客文章](http://www.fidelitydesign.net/?p=473)关于版本3使我不想尝试当前版本,因为我确实需要在多线程下运行它环境和(希望)支持模板的缓存 – Madd0g

+0

@ Madd0g,你的场景是什么?也许有更适应你的需求的东西。 –

+0

我有一个带有占位符的HTML模板列表,每个模板都与一组规则相关联,它们保存在数据库中。最终,这些模板将应用于符合某些条件(和规则)的数据。优选地,整个模板被缓存,以便快速处理数据。它需要像部分视图一样工作,只需要更多“动态”。 – Madd0g

5

为了使用RazorEngine解析字符串,你将需要RazorEngine.dll,这可以从http://razorengine.codeplex.com/

下载到解析剃刀引擎的字符串只需要使用下面的例子:

var model = new { Name = "Test" }; 
var template = "Hello @Model.Name"; 

var result = Razor.Parse(template, model); 

至于是否建议使用它来解析一个字符串,实际上取决于你使用的是什么。如果你认为你需要Razor提供的灵活性,我会推荐它,但是与标准的字符串替换相比,它确实会带来一些性能问题。

+0

我使用它来管理项目之外的视图 - 我很关心性能,因为我期望很多(20?50?)在单个页面视图上调用这些模板 - 这就是为什么他们关于新版本变化的博客文章让我害怕尝试旧版本,他们认为这在多线程环境中效果不佳(Web可能属于这个类别,对吧?) – Madd0g

+0

对于你想达到的目标来说,这可能不是一个好主意。 –

相关问题