Kann ich dienen .html-Dateien mit Razor als ob Sie es wären .cshtml-Dateien ohne änderung der extension alle meine Seiten?
Manage ich eine große asp.net Website, die zuvor umgewandelt worden, die aus statischen html-Website asp.net.
Aus mehreren Gründen (vor allem SEO) haben wir beschlossen, benennen Sie alle Dateien um .aspx zurück, als wir ursprünglich umgewandelt, die Website. Dies war sehr einfach zu tun, indem Sie einfach die buildProvider-und httpHandler auf das web.config.
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
Nun bin ich die Aktualisierung der Website zu verwenden Asp.net Webseiten mit Razor cshtml-Dateien. Ich kann benennen Sie die Dateien, wenn nötig, und verwenden Sie url-rewriting, um die urls bleiben gleich, aber es wäre viel einfacher, wenn ich könnte einfach konfigurieren der web.config sagen, es zu analysieren .html-Dateien, als ob Sie waren .cshtml.
Habe ich danach gesucht, um etwas, und konnte nicht finden, alles, was äquivalent zu der PageHandlerFactory für die razor-Seiten. Es scheint, als ob es sich nur um einen internen Mechanismus in der .net 4.0 ISAPI handler.
Die Website läuft derzeit auf Windows 2003 server und IIS 6. Wir werden das Upgrade auf 2008/IIS 7.5 in der nahen Zukunft, aber ich würde es vorziehen, nicht zu warten, für die.
Gibt es eine Möglichkeit zu bekommen .html-Dateien analysiert werden, die von razor, als ob Sie waren .cshtml-Dateien?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke an SLaks für den Hinweis mich in die richtige Richtung, aber es dauerte noch ein paar Stunden zu Graben, in das MVC-Quelle, um herauszufinden, die Lösung.
1 - setzen Müssen RazorBuildProvider im web.config
Und System hinzufügen.Web.Webseiten.Rasierer Baugruppen, wenn es nicht bereits vorhanden ist.
2 - Fügen 2 Zeilen im
global.asax
Application_Start()
Methodeweb.config
Datei soll ich den<buildProvider>
config? Ich bin versucht, das gleiche zu tun, generierenmd
Dateien auscsmd
mit razor syntax, ich möchte die IntelliSense zur Verfügung. Ist dies der Weg zu gehen?Rufen Sie WebPageHttpHandler.RegisterExtension.
Müssen Sie möglicherweise auch registrieren Sie einen benutzerdefinierten WebPageRazorHostFactory zu sagen, die Razor engine, was mit der Datei machen; ich bin mir nicht sicher.
Als diese tatsächlich behoben wurden für die Verwendung mit VS2012 /.net 4.5.
Wie mit den oben genannten Beispielen in einem C# - 5-Projekt bekomme ich kein Glück 🙁