¿Renderizar un archivo HTML en la vista ASP.NET MVC?

Resuelto TruMan1 asked hace 10 años • 7 respuestas

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?

TruMan1 avatar Jan 02 '14 01:01 TruMan1
Aceptado

No puedes usarlo Html.Partialpara esto. Es un método auxiliar especial para renderizar vistas parciales. En su lugar, puedes agregar algo Actioncomo este:

[ChildActionOnly]
public ActionResult GetHtmlPage(string path)
{
   return new FilePathResult(path, "text/html");
}

Y puedes llamarlo desde tu Viewusando Html.Actionel método auxiliar:

@Html.Action("GetHtmlPage","controllername", new { path = "~/Test/main.html" })
Selman Genç avatar Jan 01 '2014 18:01 Selman Genç

Sigue estos pasos

  1. Crea una vista en ~/views/sharedla carpeta. dale nombre test.cshtml.
  2. Copie el contenido de HTML en él.
  3. Úselo Html.Partial("test")en la página para representar el html de esa vista.
Ankush Jain avatar Jan 01 '2014 18:01 Ankush Jain

Creo que es una mejor solución: usar WriteFiledesde el Responseobjeto.

@Response.WriteFile(pathToMyHtmlFile)

tomado de aquí

Mahmood Dehghan avatar May 05 '2015 02:05 Mahmood Dehghan

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.

Fanie Reynders avatar Jan 01 '2014 18:01 Fanie Reynders