[解決済み] プロジェクトに同じ名前のコントローラが複数ある場合の問題点
質問
ASP.NET MVC 3 プロジェクトで、次のようなエラーが発生しました。
Homeという名前のコントローラに一致する型が複数見つかりました。 という名前のコントローラに一致する複数のタイプが見つかりました。これは このリクエストを処理するルート('Home/{action}/{id}')が このリクエストを処理するルート ('Home/{action}/{id}') が を検索するための名前空間を指定していない場合に起こります。 コントローラを検索するための名前空間を指定していない場合に発生します。 このような場合は、この のオーバーロードをコールすることで、 このルートを登録します。 MapRoute' メソッドのオーバーロードをコールして、 ルートを登録します。 メソッドのオーバーロードをコールします。
Home' へのリクエストは、以下のコントローラにマッチしました。 以下のコントローラにマッチします。 MyCompany.MyProject.WebMvc.Controllers.HomeController に一致するコントローラが見つかりました。 MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController です。
デフォルトのコントローラフォルダに HomeController があり、クラス名が MyCompany.MyProject.WebMvc.Controllers.HomeController になっています。
私のglobal.asaxのRegisterRoutesメソッドは、次のようになります。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
そして Company というエリアがあり、そのエリアのデフォルトコントローラフォルダに HomeController があり、クラス名が MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController になっています。
CompanyAreaRegistration ファイルの RegisterArea メソッドは次のようになります。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
これはすべて、私がこの投稿の冒頭で強調したエラーを導いています。私は、他のさまざまな投稿から解決策をまとめようと奮闘しています。 NO LUCK .
デフォルトのコントローラフォルダにHomeControllerを置き、各エリアに1つずつ置くことは可能でしょうか?もしそうなら、これを動作させるために設定ファイルを変更する必要がありますか (私がすると仮定して)。
どのようなヘルプでも、とても感謝します!
どのように解決するのですか?
エラーメッセージには推奨される解決方法が記載されています: "この場合、「namespaces」パラメータを受け取る「MapRoute」メソッドのオーバーロードを呼び出して、このルートを登録してください。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "MyCompany.MyProject.WebMvc.Controllers"}
);
これは http://server/ は HomeController の Index アクションに移動します。 http://server/company/home は、エリア登録で定義された Company エリアの HomeController の Index アクションに移動します。
関連
-
[解決済み] Home'という名前のコントローラに一致するタイプが複数見つかりました。
-
[解決済み] RedirectToActionのパラメータとしてmodelを渡すことはできますか?
-
[解決済み] Visual Studioのデバッグ/ロードが非常に遅い
-
[解決済み] Html.ActionLinkをリンクではなく、ボタンや画像にする
-
[解決済み】HTTPエラー500.19とエラーコード: 0x80070021
-
[解決済み] MVCのHTMLヘルパーで生成されたHTML要素にclass属性を追加するにはどうすればよいですか?
-
[解決済み] セキュリティ透過的なメソッド 'WebMatrix.WebData.PreApplicationStartCode.Start()' による試行。
-
[解決済み] ASP.Net MVCでRequest on Controllerをモック化する方法とは?
-
[解決済み] ASP.NET MVCのモデルでUrlHelperを呼び出す
-
[解決済み] Razorを使ってエンコードされていないJsonをViewに書き込むにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Home'という名前のコントローラに一致するタイプが複数見つかりました。
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み] OwinStartupが起動しない
-
[解決済み】MVC 4 @Scripts "does not exist".
-
[解決済み] [Solved] ASP.NET MVCで404を適切に処理するには?
-
[解決済み】HTTPエラー500.19とエラーコード: 0x80070021
-
[解決済み] MVCのHTMLヘルパーで生成されたHTML要素にclass属性を追加するにはどうすればよいですか?
-
[解決済み] datetime2 データ型から datetime データ型への変換で、範囲外の値が発生しました。
-
[解決済み] Razorを使ってエンコードされていないJsonをViewに書き込むにはどうしたらいいですか?
-
[解決済み] ソートロジックは、モデル、ビュー、コントローラのいずれに配置するのがよいのでしょうか?[クローズド]