質問

小さなmvc2アプリケーションをmvc3razor構文に変換しようとしています。私のmvc2アプリケーションでは、マスターページでaspxビューエンジンを使用しています。StevenSandersonのProMVC2ブック第2版の例に従って、マスターページで、各エンティティの部分ビューをレンダリングするコントローラーアクションを呼び出します。これは正しく機能しています。 ジェネラコディセタグプレ

_layout.cshtmlとかみそりを使ってこれを試しています。ここで私の問題が発生します。 ジェネラコディセタグプレ

これにより無限ループが発生し、奇妙なことにStackOverflowExceptionが発生しています。誰かが私が問題を修正するのを手伝ってもらえますか?これがコントローラーのメソッドコードです。 ジェネラコディセタグプレ

ヘルプやヒントをいただければ幸いです。

ありがとう、
〜サンディエゴでck

役に立ちましたか?

解決

実際のスタックトレースを投稿していませんが、説明から、再帰はレイアウトページを実行する「部分的な」アクションビューにあり、アクションをレンダリングし、レイアウトをレンダリングします。

PartialViewの代わりに、子アクションメソッドからViewを返してみてください。これにより、_ViewStartページが実行されなくなり、子アクションのレイアウトがレンダリングされなくなります。これについての詳細はこちらです: http://forums.asp.net/t/1624687.aspx

他のヒント

置く ジェネラコディセタグプレ

部分ビューの上に。

まず第一に、personIdパラメーターは使用されません(とにかく正しくルーティングされていますか)?

しかし、私は間違いなくEnumerableHelpers.MakeLinksを調べることから始めます 再帰の問題を非表示にするのに最適な場所です。ブレークポイントを設定してみてください

私が使用したものから

モデル: ジェネラコディセタグプレ

表示 ジェネラコディセタグプレ

コントローラー ジェネラコディセタグプレ

レンダリング テキスト
controllerPerson
actionPerson ホーム
controllerPerson
actionPerson
personId1 カーリー
controllerPerson
actionPerson
personId2 マーク

(RenderActionの代わりに)これだけを実行してみてください ジェネラコディセタグプレ

メニュービューには何がありますか?再帰を引き起こす可能性のあるものはありますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top