MVC Futures ライブラリの強く型付けされた性質の Html.RenderAction を使用しようとしています
Site.Master から呼び出そうとしているプライマリ HomeController (area = "") に Navigation アクションがあります。
<% Html.RenderAction<HomeController>(x=>x.Navigation()); %>
別の HomeController を管理者のポータブル領域に追加するまで、これはうまく機能しました。その後、次のエラーが発生しました。
「Home」という名前のコントローラーに一致する複数のタイプが見つかりました。これは、このリクエストを処理するルートが、リクエストに一致するコントローラを検索するための名前空間を指定していない場合に発生する可能性があります。この場合は、'namespaces' パラメーターを取る 'MapRoute' メソッドのオーバーロードを呼び出して、このルートを登録します。
「ホーム」のリクエストにより、次の一致するコントローラーが見つかりました: Areas.Admin.Controllers.HomeController Web.Controllers.HomeController
次の非 mvccontrib の厳密に型指定された RenderAction メソッドを使用して、問題を解決できました。この強く型付けされていないメソッドをページに含めたくないのですが、mvccontrib メソッドが領域を受け入れるようにする方法、または指定されているコントローラーのルートまたは名前空間に基づいて領域を生成することを知る方法はありますか。
<% Html.RenderAction("Navigation", "Home", new { area = "" }); %>
以下に示すように、既定の領域を持つ複数のコントローラーをサポートするために、global.asax.cs ファイルに既に追加しており、これがコントローラーの正しい名前空間であることも確認しました。
_routeCollection.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new[] { "Web.Controllers" });