2011-11-21 36 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

對於你想達到的目標來說,這可能不是一個好主意。 –

相關問題