2 Stimmen

Kompilierzeitfehler: Rendering einer Teilansicht innerhalb einer Teilansicht

Ich versuche, eine Teilseite innerhalb einer Teilseite zu rendern. Also habe ich in meiner Layout-Seite einen Aufruf zu meinem partiellen CreateMenu und hier übergebe ich das Modell von der Layout-Seite. Das funktioniert perfekt. Nun versuche ich innerhalb der CreateMenu-Teilseite MenuItem mit der gleichen Syntax aufzurufen, aber es schlägt fehl. Visual Studio zeigt den Pfad als rot an (ich weiß zu 100%, dass er existiert).

Wie kann ich einen Teilbereich aus einem Teilbereich heraus darstellen.

Aufruf von MenuPartial an den Renderer:

@Html.Partial("~/Models/Default/UserControls/_MenuItem.cshtml", Model.Modules[i])    

Model.Modules[i] besteht aus MvcModule-Objekten.

Menüpunkt:

@model Models.Default.Classes.MvcModule
<li class="@{if (Model.CanExpand) {<text>fullwidth</text>} else {<text>nodrop</text>}} first_fullwidth">
...

Dies führt zu einem Kompilierungsfehler:

Compiler Error Message: CS0115: "ASP._Page_Models_Default_UserControls__MenuItem_cshtml.Execute()": Es wurde keine passende Methode zum Überschreiben gefunden. Line 46: public override void Execute() {

Entschuldigung für den deutschen Text. Ich habe versucht, es zu bekommen, um Englisch stattdessen ausgeben, aber VS 2010 weigert sich, die Einstellungen zu ändern =/

2voto

gram Punkte 2762

Ich glaube nicht, dass es sich um ein verschachteltes Teilproblem handelt. Sie sollten in der Lage sein, Teilbereiche ohne Probleme zu verschachteln. Es sieht aus wie die partielle Sie versuchen zu rendern ist in der ~/Models/Default/UserControls Verzeichnis. Dies ist nicht der Ort, an dem die Standard-View-Engine nach Views sucht. Versuchen Sie, die web.config Datei aus Ihrer Views in das Verzeichnis Models Verzeichnis.

Wenn es mir ginge, würde ich versuchen, das Speichern von Ansichten außerhalb des Verzeichnisses Views möglichst zu vermeiden, um solche seltsamen Probleme zu vermeiden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X