web-dev-qa-db-fra.com

Rendre le fichier HTML dans la vue ASP.NET MVC?

À 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?

22
TruMan1

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" })
33
Selman Genç

Je pense que c'est une meilleure solution: utilisez WriteFile à partir de l'objet Response

@Response.WriteFile(pathToMyHtmlFile)

tiré de ici

6
Mahmoodvcs

Suivez ces étapes

  1. Créez une vue dans le dossier ~/views/shared. donnez-lui le nom test.cshtml
  2. Copiez-y le contenu html.
  3. Utilisez html.partial ("test") à la page pour rendre le html de cette vue
6
Ankush Jain

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.

5
Fanie Reynders

Vous pouvez utiliser ceci dans votre vue cshtml:

@{this.GetOutputWriter().Write(File.ReadAllText(Server.MapPath("/your/static/file.html")));}
2
Fit Dev

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.

0
Hüseyin Yağlı