Quiero poder solicitar .html
archivos estáticos que se encuentran en la ~/Views
carpeta. Según la documentación, el sistema de enrutamiento verifica si una URL coincide con un archivo de disco antes de evaluar las rutas de la aplicación.
Pero cuando solicito el archivo 404
surge un error.
Mi archivo se encuentra en la carpeta ~ / Views. La URL es:http://[localhost]/Views/HtmlPage1.html
¿Qué me he perdido?
fuente
Para permitir archivos como js y html en la carpeta Vistas, edite web.config en vistas-Carpeta:
fuente
Bien tu puedes. La respuesta marcada no es del todo correcta, aunque da solución.
El razonamiento en la respuesta marcada es correcto, es web.config (la configuración de BlockViewHandler es específica) en la carpeta Vistas que evita que se acceda directamente a los archivos. Está ahí para asegurar las vistas en Asp.Net MVC. Pero si hizo una pregunta sobre cómo entregar estos archivos directamente, entonces probablemente tenga una razón válida para hacerlo, como usar vistas parciales de AngularJS (como en nuestro caso) donde no queremos duplicar la carpeta de vistas con nombres extraños.
Así que aquí hay un ajuste muy simple que puede hacer en el archivo web.config que se encuentra en la carpeta Vistas, sin comprometer la seguridad de sus vistas asp.net mvc. Esto protegerá los archivos .cshtml como de costumbre, pero deje sus archivos .html en paz.
Cambia esto
--a--
fuente
Otra opción alternativa es insertar un método de acción en cualquiera de los controladores deseados para servir el archivo html
Acceda al html como http: // yoursite / controller / MyHtml . Puede ampliar este método de acción para aceptar el nombre del archivo html como método / parámetro querystrign y representar el archivo en tiempo de ejecución, por ejemplo, algo como esto.
fuente
Si planea usar la carpeta de vista interior, las respuestas anteriores deberían ser las mejores, pero esta respuesta puede ser útil para los usuarios que están migrando al núcleo asp.net mvc. Colocar archivos en wwwroot en lugar de la carpeta de vistas debería hacer que sus páginas html accedan fácilmente como localhost / myfile.html
fuente