J'ai le code de contrôleur suivant:
public MyController:Controller
{
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult MyPartialViewAction()
{
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView",PartialViewModel);
}
}
et ma vue d'index a le code suivant:
@HTML.Action("MyPartialViewAction")
Lorsque je lance l'application Web, j'obtiens HttpException avec InnerExceptionMessage en tant que:
InnerException {"La vue partielle '~/Views/Shared/MyCustomFolder/_MyPartialView' n'a pas été trouvée ou aucun moteur de vue ne prend en charge les emplacements recherchés. Les emplacements suivants ont été recherchés:\r\n ~~/Views/Shared/MyCustomFolder/_MyPartialView" } System.Exception {System.InvalidOperationException}
Ce que j'ai essayé jusqu'à maintenant:
J'ai essayé de déplacer _MyPartialView
de ~/Views/Shared/MyCustomFolder
vers ~/Views/Shared/
et ~/Views/MyControllerFolder
, mais l'erreur persiste
J'ai essayé de changer mon code d'indexation en @HTML.RenderAction()
mais pas de chance.
Des entrées sur où je vais mal?
Merci
Vous devez ajouter l'extension .cshtml au nom de la vue:
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView.cshtml",PartialViewModel);
Juste au cas où la réponse sélectionnée ne fonctionnerait pas pour vous:
J'ai changé l'action de compilation du fichier cshtml en Contenu et cela a été corrigé.
Vérifiez également les espaces après votre nom de fichier, avant le ".cshtml". J'avais inséré accidentellement un espace après mon nom de fichier, ce qui a perturbé le comportement automatique de PartialView () pour moi.
J'ai reçu ce message d'erreur car la vue partielle avait été ajoutée au fichier de projet (.csproj) mais n'était pas réellement présente sur le disque.