Ich möchte statische .html
Dateien anfordern können, die sich im ~/Views
Ordner befinden. Gemäß der Dokumentation prüft das Routing-System, ob eine URL mit einer Festplattendatei übereinstimmt, bevor die Routen der Anwendung ausgewertet werden.
Aber wenn ich die Datei anfordere, tritt ein 404
Fehler auf.
Meine Datei befindet sich im Ordner ~ / Views. Die URL lautet:http://[localhost]/Views/HtmlPage1.html
Was habe ich vermisst?
quelle
Um Dateien wie js und html im Ordner "Ansichten" zuzulassen, bearbeiten Sie die Datei "web.config" im Ordner "Ansichten":
quelle
Ja, du kannst. Die markierte Antwort ist nicht ganz richtig, obwohl sie eine Lösung bietet.
Die Begründung in der markierten Antwort ist korrekt. Es ist web.config (BlockViewHandler-Einstellung, um genau zu sein) im Ordner "Ansichten", die den direkten Zugriff auf die Dateien verhindert. Es dient zum Sichern der Ansichten in Asp.Net MVC. Wenn Sie jedoch eine Frage zum direkten Bereitstellen dieser Dateien gestellt haben, haben Sie wahrscheinlich einen gültigen Grund dafür, z. B. die Verwendung von AngularJS-Teilansichten (wie in unserem Fall), bei denen wir den Ansichtsordner nicht mit seltsamen Namen duplizieren möchten.
Hier ist eine sehr einfache Änderung, die Sie in der Datei web.config im Ordner Ansichten vornehmen können, ohne die Sicherheit Ihrer asp.net mvc-Ansichten zu beeinträchtigen. Dadurch werden die CSHTML-Dateien wie gewohnt gesichert, Ihre HTML-Dateien bleiben jedoch in Ruhe
Ändere das
--zu--
quelle
Eine andere alternative Option besteht darin, eine Aktionsmethode in einen der gewünschten Controller einzufügen, um die HTML-Datei bereitzustellen
Greifen Sie auf das HTML als http: // Ihre Site / Controller / MyHtml zu . Sie können diese Aktionsmethode erweitern, um den HTML-Dateinamen als Parameter method / querystrign zu akzeptieren und die Datei zur Laufzeit zu rendern, z. B. so etwas.
quelle
Wenn Sie planen, den Ordner "Inside View" zu verwenden, sollten die obigen Antworten am besten sein. Diese Antwort kann jedoch für Benutzer nützlich sein, die auf asp.net mvc core migrieren. Durch das Platzieren von Dateien in wwwroot anstelle des Ansichtsordners sollten Ihre HTML-Seiten problemlos als localhost / myfile.html zugänglich sein
quelle