6

エリアを使用するASP.NETMVC2(RTM)プロジェクトを作成しています。1つのエリアのホームコントローラーのインデックスアクションは、ページのサブセクションを生成するためにRenderActionを使用する必要があります。呼び出されるアクションも同じホームコントローラーで定義されます。したがって、呼び出しは次のようになります。

<% Html.RenderAction("List") %>

ただし、例外が発生します。

パブリックアクションメソッド「リスト」がコントローラー「RareBridge.Web.Areas.Events.Controllers.HomeController」で見つかりませんでした。

私は「イベント」エリアにいないことに注意してください!私はまったく別の地域にいます。「イベント」ホームコントローラーを削除すると、例外は引き続き発生しますが、別のコントローラーに名前が付けられます(呼び出したいコントローラーではありません)。

RenderActionメソッドにコントローラー名と領域を指定しようとしましたが、同じ例外が発生します。ここで何が起こっているのですか?

ところで:私はIoCコンテナとしてAutofacを使用しています

4

2 に答える 2

15

おそらく、呼び出したアクションには、現在のリクエストと一致しないフィルター属性 (つまり、AcceptVerbs) があります。「リスト」アクションからフィルターを削除して、再試行してください。

于 2010-07-20T16:18:58.007 に答える
4

routeValuesをパラメーターとして受け取るrenderactionオーバーロードを使用し、areaプロパティを使用して特定の領域にリダイレクトします。

fi

<% Html.RenderAction("Edit", module.Value, new { area = "Modules", id = module.Key }); %>
于 2010-04-12T06:29:18.820 に答える