ASP.NET MVC 3プロジェクトで次のエラーが発生しています。
「ホーム」という名前のコントローラーに一致する複数のタイプが見つかりました。これは、このリクエストを処理するルート( 'Home / {action} / {id}')が、リクエストに一致するコントローラーを検索するための名前空間を指定していない場合に発生する可能性があります。その場合は、「namespaces」パラメーターを受け取る「MapRoute」メソッドのオーバーロードを呼び出して、このルートを登録します。
「ホーム」のリクエストにより、次の一致するコントローラーが見つかりました: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をデフォルトのコントローラフォルダに入れてから、それぞれの領域に置くことはできますか?もしそうなら、私はこれを機能させるために私の設定ファイルに変更を加える必要があると思いますか?
どんな助けでも大歓迎です!