¿Renderizar un archivo HTML en la vista ASP.NET MVC?
En mi opinión, me gustaría representar el contenido de un archivo HTML como una vista parcial. Sin embargo, me da este error cuando agrego esto a la vista .cshtml:
@Html.Partial(Url.Content("~/Test/main.html"))
Errores:
Exception Details: System.InvalidOperationException: The partial view '/Scripts/main.html' was not found or no view engine supports the searched locations. The following locations were searched:
/Scripts/main.html
Sin embargo, el archivo está físicamente allí. ¿Hay alguna forma diferente en la que debería hacer esto?
No puedes usarlo Html.Partial
para esto. Es un método auxiliar especial para renderizar vistas parciales. En su lugar, puedes agregar algo Action
como este:
[ChildActionOnly]
public ActionResult GetHtmlPage(string path)
{
return new FilePathResult(path, "text/html");
}
Y puedes llamarlo desde tu View
usando Html.Action
el método auxiliar:
@Html.Action("GetHtmlPage","controllername", new { path = "~/Test/main.html" })
Sigue estos pasos
- Crea una vista en
~/views/shared
la carpeta. dale nombretest.cshtml
. - Copie el contenido de HTML en él.
- Úselo
Html.Partial("test")
en la página para representar el html de esa vista.
Creo que es una mejor solución: usar WriteFile
desde el Response
objeto.
@Response.WriteFile(pathToMyHtmlFile)
tomado de aquí
La respuesta simple es cambiar el nombre del archivo main.html a main.cshtml, que será reconocido por el motor de visualización de Razor para su renderizado.