2011-11-21 7 views
7

ビュー(cshtml)ファイルなしでRazorエンジンを使用したいが、文字列上で使用したい。 私は文字列上のRazorエンジンの使用 - ビューではない

new RazorViewEngine().Render 

を使用する例を見てきましたが、私はRenderメソッドを見つけることができない、MVCの中からそれをやりたい、それはMVCの昔から何かありますか?

私はまたRazor.Parseを使用する例を見てきましたが、私はそれを見つけることができませんどちらか - おそらく参照が不足して(私は右、すでにMVCを使用している場合はそれがあるはず?)

HTML文字列に3〜4個のパラメータを挿入するだけなら、Razorを使用することをお勧めしますか?私は今MVCにちょっと夢中で、まっすぐ考えることができないかもしれないと思う。私はHTMLの文字列をメモリにキャッシュし、DBからモデルを渡すことを計画しています。

あなたは

答えて

3

あなたはRazorEngineを見てみていただきありがとうございます。

+0

これはちょっと残酷なようです。私はこのような巨大な外部ライブラリなしでこれを実現できるはずだと感じていますが、とても見栄えがいいです。 しかし、バージョン3についての[ブログ投稿](http://www.fidelitydesign.net/?p=473)を見ると、私は現在のバージョンを試したくないです。私はマルチスレッド環境と(うまくいけば)テンプレートのキャッシュをサポートする – Madd0g

+0

@ Madd0g、あなたのシナリオは何ですか?たぶんあなたのニーズに合ったより適応したものがあります。 –

+0

私はプレースホルダを持つHTMLテンプレートのリストを持っていて、それぞれが一連のルールに関連付けられており、それらはDBに保存されています。最終的にこれらのテンプレートは、いくつかの条件(およびルール)を満たすデータに適用されます。テンプレート全体をキャッシュして、データを素早く処理できるようにすることが好ましい。パーシャルビューと同じように動作する必要があります。 – Madd0g

5

文字列を解析するためにRazorEngineを使用するためには、カミソリエンジンで文字列を解析するにはhttp://razorengine.codeplex.com/

からダウンロードすることができRazorEngine.dllを、必要になりますちょうど次の例を使用します。

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

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

文字列の解析に使用するかどうかは、実際に使用している文字列に依存します。 Razorが提供する柔軟性が必要だと思うなら、私はそれをお勧めしますが、それを標準的な文字列置換と比較すると、少しヒットします。

+0

私はプロジェクトの外でビューを管理するためにそれを使用しています - 私は多くの(20?50?)これらのテンプレートを単一のページビューで呼び出すことができます。そのため、新しいバージョンの変更についてのブログ記事は、マルチスレッド環境ではあまりうまく動かない古いものを試してみることを恐れていますこのカテゴリに該当するのですか?) – Madd0g

+0

あなたが達成しようとしているものは、おそらく良い考えではありません。 –

0

Parse methodにはRazorParser classがあり、入力パラメータとしてTextReaderをとります。しかし、全体System.Web.Razor.Parser namespace

としてマークされているこのタイプ/メンバーは、.NET Frameworkインフラストラクチャをサポートします。コードから直接使用するためのものではありません れます。

あなたは自分でそれを理解する必要があります。

関連する問題