2009-05-01 22 views
1

私は3つのクラスのMainMenu、SubMenu、Secondary SubMenuを持っています。私はセカンダリサブメニューを作成するときに使用されるカスケードドロップダウンボックスを持っています。メインメニューが選択され、サブメニューでドロップダウンが表示されます。 MainMenuドロップダウンボックスで項目を選択すると、エラーが表示されます。ASP.NET MVC - カスケードドロップダウン循環参照エラー

System.InvalidOperationException: 'System.Reflection.Module'タイプのオブジェクトをシリアル化中に循環参照が検出されました。

サブメニューはメインメニューを参照し、セカンダリメニューはサブメニューを参照します。

どこからエラーが発生するのかよくわかりません。

答えて

1

が必要もしそうなら、私は、次のlink

2

よく、SubMenuとは何ですか?

これは、通常、親関係がある場合は、ツリーシリアライザ(XmlSerializerやJSON実装など)で発生します。あなたのサブメニューはその親について知っていますか?おそらく、これを内部財産にすることはできますか?それとも、無視するようにマークしますか?

1

Jsonメソッドは、オブジェクトAが別のオブジェクトBを参照し、オブジェクトAを参照すると無限ループになった場合に、反射/再帰を使用してオブジェクト構造をJsonに変換します。サブメニューには親子供がいますか?ほとんどの場合、あなただけの1

+0

感謝の助けを借りて、エラーを解決することができました。私は3つのメニューを持っています。メインメニュー、サブメニュー、そしてセカンダリサブメニュー。サブメニューはメインメニューを参照し、セカンダリサブメニューはサブメニューを参照しますが、これは間違っていますか? – Ros

+0

これで、MainMenuにリンクするSubMenuの配列をJSONResultに渡します。メインメニューに、リンクバックできるプロパティがありますか?おそらく、あなたは3つのクラスとその公共のプロパティを説明するあなたの質問を更新することができますか?他の人も同様に見た目と答えを持つことができます:) –

+0

Cssスタイルを参照するMainMenuに別のプロパティを追加しました。 Css Styleプロパティを削除すると、カスケードメニューが再び機能します。 – Ros