it-swarm.com.de

die Teilansicht wurde nicht gefunden oder die Ansichtsorte wird von keiner Ansichtsmaschine unterstützt

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

36
siva

Sie müssen die Erweiterung .cshtml zum Ansichtsnamen hinzufügen:

return PartialView("~/Views/Shared/MyCustomFolder/_MyPartialView.cshtml",PartialViewModel);
45
Maess

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.

38
Sanvir Manilal

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);

7
lukejkw

Ü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.

3

Ich habe diese Fehlermeldung erhalten, weil die Teilansicht zur Projektdatei (.csproj) hinzugefügt wurde, jedoch nicht auf der Festplatte vorhanden war.

0
dwilli