ASP.NET MVC3Razor構文ヘルプ-無限ループに陥っています
-
27-09-2019 - |
質問
小さな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の代わりに)これだけを実行してみてください ジェネラコディセタグプレ
メニュービューには何がありますか?再帰を引き起こす可能性のあるものはありますか?