À mon avis, j'aimerais rendre le contenu d'un fichier HTML comme une vue partielle. Cela me donne cependant cette erreur lorsque j'ajoute ceci à la vue .cshtml:
@Html.Partial(Url.Content("~/Test/main.html"))
Les erreurs:
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
Le fichier est physiquement là cependant. Existe-t-il une manière différente de procéder?
Vous ne pouvez pas utiliser Html.Partial
pour cela. Il s'agit d'une méthode d'assistance spéciale pour le rendu des vues partielles. Au lieu de cela, vous pouvez ajouter un Action
comme ceci:
[ChildActionOnly]
public ActionResult GetHtmlPage(string path)
{
return new FilePathResult(path, "text/html");
}
Et vous pouvez l'appeler depuis votre View
en utilisant Html.Action
Méthode d'assistance:
@Html.Action("GetHtmlPage","controllername", new { path = "~/Test/main.html" })
Je pense que c'est une meilleure solution: utilisez WriteFile
à partir de l'objet Response
@Response.WriteFile(pathToMyHtmlFile)
tiré de ici
Suivez ces étapes
La réponse simple est de renommer le fichier main.html en main.cshtml qui sera reconnu par le moteur de vue Razor pour le rendu.
Vous pouvez utiliser ceci dans votre vue cshtml:
@{this.GetOutputWriter().Write(File.ReadAllText(Server.MapPath("/your/static/file.html")));}
Utilisez simplement une requête ajax pour récupérer le fichier html et le contenu dans votre html principal. Puisqu'il s'agit d'un fichier html, il sera mis en cache lors des appels suivants et il n'y aura aucun impact sur les performances.