2016-03-23 10 views
1

DBに保存されているHTMLがいくつかありますが、後で変数に保存され、変数に保存され、最後に@Html.Raw(Model.Page.Html)を使用して表示されます。HTML内にRazorコードをレンダリングする

問題は、このHTMLは、のコードをViewBag.Emailのように持つことです。 HTMLを印刷する前にこのRazorコードをどのようにレンダリングできますか?私はすでにそれをPartial Viewに置き、HTMLの中でそれを呼び出して印刷しようとしましたが、動作しません。

一部の人が私にRazorEngine libを指摘しましたが、私はその作業を行うことができませんでした。私はバージョン3.7.7をインストールしましたが、ドキュメントは少し混乱します。

RazorEngineが私の最善の選択肢であれば、印刷する前にHTMLをレンダリングする方法の例を含めてください。

EDIT

これは私の問題の例である:私の連絡先ページには、内部の形状を有しています。

<input type="@ViewBag.ITEmail" placeholder="E-mail" name="cEmail"> 

このHTML私からフェッチされる:私のFilterの中でいくつかの点で私は、要求がモバイルデバイスからだったし、この情報を、私はViewBag上の入力の種類を設定するならば、例えばはどうかチェックDBと私のヘルパーにいくつかの情報を変更するために渡され、それは@Html.Raw(Model.Page.Html)を使用して私のViewに印刷されます。

+0

@MuratYıldız、私の問題はHTML自体ではなく、自分のHTMLの中にあるRazor sintaxです。私は例を使って質問を更新するつもりです。 – Terkhos

+1

私はRazorEngineで試してみることをお勧めしますが、ViewBagを使用しないで、モデルを使用することをお勧めします。 – ZippyV

+0

@ ZippyV、私は実際にモデルを使用することができましたが、私の問題は、RazorEngineの実装方法をまだ理解できていないことです。 – Terkhos

答えて

1

レイザービューは動的に作成されます。カミソリファイルを編集するたびに、それはバックグラウンドでコンパイルされ、新しいdllに組み込まれます。

基本的には、cshtmlファイルが変更されたときに通常起動される何らかの方法でビルドプロセスをトリガする必要があります。だから、あなたはそれをしなくてはなりません。ファイルをロードして保存します。

+0

私は物理的なファイルにHTMLを保存していません。HTMLをデータベースに保存しておき、HTMLを文字列として取得し、 'Html.Raw("

My name is @ViewBag.MyName
")'を使って 'View 'に表示します。問題は 'View'が'
My name is Terkhos
'の代わりに'
My name is @ViewBag.MyName
'を表示するということです。 – Terkhos

+0

私はあなたが物理的なファイルに保存しないことを理解します。私はあなたがビルドプロセスを引き起こすためにそれをしなければならないと言っています。それはちょうどasp.net mvcが動作する方法です。 – vbilopav

+0

私は今それを得ました、私はすでに私がそれを行う方法を見つけることができなかったことを見ているということです。私が持っていると思う最良のオプションは、RazorEngineですが、私は実装に私の道を見つけることができません。 – Terkhos

関連する問題