Ich habe folgenden Controller-Code:
public MyController:Controller
{
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
public ActionResult MyPartialViewAction()
{
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView",PartialViewModel);
}
}
und meine Indexansicht hat den folgenden Code:
@HTML.Action("MyPartialViewAction")
Beim Ausführen der Webanwendung erhalte ich HttpException mit InnerExceptionMessage als:
InnerException {"Die Teilansicht '~/Views/Shared/MyCustomFolder/_MyPartialView' wurde nicht gefunden, oder die View-Engine unterstützt keine Suchorte. Die folgenden Positionen wurden durchsucht:\r\n ~~/Views/Shared/MyCustomFolder/_MyPartialView" } System.Exception {System.InvalidOperationException}
Was ich bisher ausprobiert habe:
Versucht, _MyPartialView
von ~/Views/Shared/MyCustomFolder
zu ~/Views/Shared/
und ~/Views/MyControllerFolder
zu verschieben, aber es ist noch ein Fehler vorhanden
Ich habe versucht, meinen Code für die Indexansicht in @HTML.RenderAction()
zu ändern, hatte aber kein Glück.
Irgendwelche Eingaben, wo ich falsch liege?
Vielen Dank
Sie müssen die Erweiterung .cshtml zum Ansichtsnamen hinzufügen:
return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView.cshtml",PartialViewModel);
Nur für den Fall, dass die ausgewählte Antwort für Sie nicht funktioniert:
Ich habe die Build-Aktion der Datei "cshtml" in "Content" geändert und das Problem behoben.
Wenn die Antworten bei Ihnen immer noch nicht funktionieren und Sie Ihren Partial in einem verschachtelten Ordner innerhalb von Partials abgelegt haben, stellen Sie sicher, dass Sie den vollständigen Pfad zum Partial mit der Erweiterung angeben.
@Html.Partial("~/Views/Partials/Components/_AdvancedComponentRenderer.cshtml", Model.Content);
Überprüfen Sie auch nach Leerzeichen vor dem ".cshtml" nach Leerzeichen. Ich hatte versehentlich nach meinem Dateinamen ein Leerzeichen eingefügt, was das automatische Verhalten von PartialView () für mich störte.
Ich habe diese Fehlermeldung erhalten, weil die Teilansicht zur Projektdatei (.csproj) hinzugefügt wurde, jedoch nicht auf der Festplatte vorhanden war.