Beheben Sie den HTML-Helfer

8

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

    
Alvin Stefanus 06.11.2015, 11:15
quelle

1 Antwort

-1

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.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und aktualisieren Sie MVC4 und alle enthaltenen js / dll / libraries mit nuget auf die neueste Version.
  2. Erstellen Sie Gruppen von Model-Objekten, die Variablen enthalten, um alle Informationen aufzunehmen, die Sie aus der Datenbank ziehen. Nutzen Sie die Vererbung oder gestalten Sie sie so, dass sie effizient auf Anfrage und Anfrage verwendet werden.
  3. Erstellen Sie Ihren Haupt-Master und Teilansichten für Ihr MVC-Projekt, die einen doppelten Front-End-Code am effizientesten verhindern. Wenn diese Ansichten hauptsächlich HTML-Antworten zurückgeben, legen Sie Ihre Controller-Aktionen auf ActionResult () fest, die auf die Master-Ansichten für Ihre Anwendung verweisen. Füllen Sie Ihr Modellobjekt in diesen Controller-Aktionen mit allen benötigten Daten aus der Datenbank und übergeben Sie die gefüllten Modellobjekte an Ihre Master-Ansicht.
  4. In Ihren Teil- und Masteransichten können Sie dieses Modellobjekt als Hauptmodell oben in der Ansicht definieren und die Modellvariablen als Parameter an Ihre HTMLHelpers übergeben.
  5. 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%
    1. Erstellen Sie in Ihren HTMLHelpers-Namespace-Klassen MVCHtmlString oder andere MVC-Methoden, die Ihre Datenbankmodellparameter verwenden und diese in funktionierendes und funktionierendes HTML / JSON oder XML umwandeln. Referenzieren Sie diese benutzerdefinierten HTML-Helfer in Ihren Teil- und Master-Ansichten.

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.

    
Chris Limina 29.03.2017 03:40
quelle

Tags und Links