Ich verwende Razor Engine , um meine Rasiereransicht dynamisch aus der Datenbank zu kompilieren. Jetzt verwende ich Razor Engine 3.7.3 . Ich sah ein paar Postings darüber, wie man html-helper liest und kompiliert, aber es war für die alte Version der Rasiermesser-Engine.
Ich habe über ITemplateServiceConfiguration
gelesen, aber ich kann nicht wirklich verstehen, wie es funktioniert.
Meine Frage ist, wie kann ich compile () razorengine (v3.7.3) erfolgreich mit @Html (HTML Helper), @Url (Url Helper) und @section (wie @Section Scripts, @Section featured) im HTML-Inhalt aus meiner Datenbank?
Die Dinge, die ich bisher getan habe. Ich habe versucht, einen Code zu implementieren, den ich von einem anderen Post bekommen habe. Der Code war für eine ältere Version der Rasierer-Engine gedacht. Er schlug vor, dass wir unsere eigene Helferklasse erstellen:
%Vor%Und dann schlug er vor, unser eigenes Template zu erstellen:
%Vor%Und vor dem Parsen müssen wir unsere config:
setzen %Vor%Es gibt kein Problem mit dem RazorUrlHelper, aber der RazorHtmlHelper kann diese Codes nicht richtig lesen, weil er veraltet ist:
%Vor%Die obigen Codes stammen von diesem Post
Ich bin mir nicht ganz sicher, ob meine Vorschläge Ihr Problem direkt lösen werden. In meiner beruflichen Erfahrung führt der Versuch, veraltete Klassen zu nutzen, nicht zu positiven Ergebnissen. Ich persönlich würde nicht versuchen, Ansichten direkt aus einer Datenbank darzustellen. Wenn ich in Ihrer Position war, die Rasiermesseransichtmaschine mit MVC4 ausnutzend, würde ich Ihren Ansatz aufgeben, diese Schritte zu folgen.
Erstellen Sie Ihre HTML-Helper-Objekte, die diese Modellvariablen als Parameter verwenden, und definieren Sie ihre Namespaces in Ihrer Datei Views / web.config. In diesem Beispiel habe ich den Namespace System.Web.HtmlHelpers verwendet. Wenn Sie dies nicht tun, können Sie keine benutzerdefinierten Helfer außerhalb der Basisnamespaces in Ihren Ansichten verwenden.
%Vor%Wenn Sie Ihre HTMLHelpers auf diese Weise implementieren, abstrahieren Sie Ihren JIT-kompilierten Code (alle Ansichtscodes) mit der Logik, die auf Daten zugreift und strukturierte Datenbankdaten in sichtbares HTML umwandelt. Im obigen Beispiel, das Sie präsentieren, wird JIT die meiste Logik für Ihre Ansichten zur Laufzeit kompilieren, was hinsichtlich der Leistung sehr teuer ist. MVC wurde so konzipiert, dass Sie den gesamten Overhead vermeiden können. Wenn Sie leistungsstarke HTML-Helfer erstellen, die in vorkompilierten Bibliotheken vorhanden sind, können Sie Ihren Ansichtscode extrem klein und einfach gestalten.
Tags und Links c# razorengine