2016-03-23 5 views
1

Ich habe einige HTML, die auf meiner DB gespeichert ist, wird später geändert und auf einer Variablen gespeichert und schließlich ist es auf meine Ansicht mit @Html.Raw(Model.Page.Html) gedruckt. Das Problem ist, dieses HTML besitzt einige Razor Codes wie ViewBag.Email. Wie kann ich diesen Razor-Code vor dem Drucken des HTML-Codes rendern? Ich habe bereits versucht, das auf eine Partial View zu setzen und es innerhalb des HTML zu nennen und es dann zu drucken, aber es wird auch nicht funktionieren.Render Razor Code in HTML

Einige Leute wiesen mich auf die RazorEngine Lib, aber ich konnte diese Arbeit nicht machen, ich habe die Version 3.7.7 installiert, aber die Dokumentation ist ein wenig verwirrend für mich.

Wenn meine beste Option ist, könnte jemand bitte ein Beispiel für das Rendern meines HTML vor dem Drucken einfügen?

EDIT

Dies ist ein Beispiel für mein Problem: Meine Kontaktseite nach innen hat eine Form. An einem gewissen Punkt in meinem Filter geprüft i, um zu sehen, ob die Anforderung von einem mobilen Gerät war und mit dieser Information würde ich den Typ des Eingangs auf einem ViewBag, zum Beispiel ein:

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

Dieser HTML geholt von meinem DB und an meine Helfer weitergegeben, um einige Informationen zu ändern und dann ist es auf meine View mit @Html.Raw(Model.Page.Html) gedruckt.

+0

@ MuratYıldız, Mein Problem ist nicht mit dem HTML selbst, sondern mit dem Razor sintax, die in meinem HTML residiert. Ich werde meine Frage mit einem Beispiel aktualisieren. – Terkhos

+1

Ich denke, die beste Lösung ist, weiterhin mit RazorEngine zu versuchen, aber nicht ViewBag verwenden, verwenden Sie ein Modell. – ZippyV

+0

@ZippyV, ich könnte tatsächlich ein Model verwenden, aber mein Problem ist, dass ich immer noch nicht herausfinden konnte, wie man die RazorEngine implementiert. – Terkhos

Antwort

1

Rasierersichten werden dynamisch erstellt. Jedes Mal, wenn Sie Ihre Rasierklingen-Datei bearbeiten, wird sie im Hintergrund kompiliert und in eine neue DLL integriert.

Grundsätzlich müssten Sie Build-Prozess irgendwie auslösen, die normalerweise ausgelöst wird, wenn cshtml Datei geändert wird. Also müsstest du das tun. Laden und speichern Sie eine Datei. Oder tief in Interna graben ...

+0

Ich speichere den HTML-Code nicht in einer physischen Datei, ich habe den HTML-Code in meiner Datenbank gespeichert und erhalte dann den HTML-Code als String und drucke ihn mit 'Html.Raw ("

My name is @ViewBag.MyName
")' '. Das Problem ist, dass die 'View''
My name is @ViewBag.MyName
'anstelle von'
My name is Terkhos
' – Terkhos

+0

druckt Ich verstehe, dass Sie nicht in eine physische Datei speichern. Ich sage, dass Sie das tun müssen, um den Build-Prozess auszulösen. So funktioniert asp.net mvc. – vbilopav

+0

Ich habe es jetzt, die Sache ist, dass ich schon in das geschaut habe, dass ich nicht herausfinden konnte, wie man es macht. Die beste Option, die ich denke, ist die RazorEngine, aber ich finde den Weg in die Implementierung nicht. – Terkhos