2009-05-01 8 views
1

Ich habe drei Klassen MainMenu, SubMenu und Secondary SubMenu. Ich habe eine Kaskadierungs-Dropdown-Box, die beim Erstellen des sekundären Untermenüs verwendet wird. Es wird ein Hauptmenü ausgewählt, das dann ein Dropdown mit Untermenüs anzeigt. Wenn ich ein Element in der Dropdown-Liste MainMenu auswähle, erhalte ich einen Fehler:ASP.NET MVC - Cascading Drop-Down Circular Referenzfehler

System.InvalidOperationException: Beim Serialisieren eines Objekts vom Typ 'System.Reflection.Module' wurde ein Zirkelverweis erkannt.

Das SubMenu verweist auf das MainMenu und das SecondaryMenu auf das SubMenu.

Ich bin mir nicht sicher, wo ich anfangen soll, nach dem Fehler zu suchen?

Antwort

1

konnte ich den Fehler mit Hilfe der folgenden link

2

Nun, was ist SubMenu?

Dies geschieht normalerweise mit Tree Serializern (wie XmlSerializer und JSON-Implementierungen, usw.), wenn Sie eine "Eltern" -Beziehung haben. Kennt Ihr Untermenü etwas über seine Eltern? Können Sie das vielleicht zu einer internen Eigenschaft machen? Oder markieren Sie es, um ignoriert zu werden?

1

Die Json-Methoden konvertieren jede Objektstruktur mit Reflektion/Rekursion in Json, wenn ein Objekt A auf ein anderes Objekt B verweist, das wiederum Objekt A referenziert. Hat das Untermenü Eltern und Kinder Eigenschaften? Wenn dies der Fall in den meisten Fällen müssen Sie nur die 1.

+0

Dank lösen. Ich habe drei Menüs. Ein Hauptmenü, ein Untermenü und dann ein sekundäres Untermenü. Das Untermenü verweist auf das Hauptmenü und das sekundäre Untermenü auf das Untermenü, ist das falsch? – Ros

+0

Ok, also übergeben Sie JSONResult ein Array von SubMenu's, die zurück zu MainMenu führen. Gibt es eine Eigenschaft im Hauptmenü, die möglicherweise zurück verlinken könnte? Vielleicht könnten Sie Ihre Frage, die die drei Klassen und ihre öffentlichen Eigenschaften beschreibt, aktualisieren? So können andere auch schauen und antworten :) –

+0

Ich hatte dem MainMenu eine weitere Eigenschaft hinzugefügt, die auf einen Css Style verweist. Wenn ich die Css Style-Eigenschaft entferne, funktionieren die kaskadierenden Menüs wieder. – Ros