サイトで見つかった他のすべての投稿を無視すると言うかもしれません。
私のソリューションには前面と背面の 2 つの領域があり、既定で提供される既定のルート コントローラーとビューを使用したくありません。
私のFrontAreaRegistration.csは次のようなものです:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Front",
"Front/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
, new[] { "Show.Areas.Front.Controllers" }
);
}
私のBackAreaRegistration.csは次のようなものです:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Back_default",
"Back/{controller}/{action}/{id}",
new { controller = "Account", action = "LogOn", id = UrlParameter.Optional }
, new[] { "Show.Areas.Back.Controllers" }
);
}
そしてGlobal.asaxのような:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
次の例外を取得:
「Home」という名前のコントローラーに一致する複数のタイプが見つかりました。これは、このリクエスト ('{controller}/{action}/{id}') を処理するルートが、リクエストに一致するコントローラーを検索するための名前空間を指定していない場合に発生する可能性があります。この場合は、'namespaces' パラメーターを取る 'MapRoute' メソッドのオーバーロードを呼び出して、このルートを登録します。
「ホーム」の要求により、次の一致するコントローラーが見つかりました: Show.Areas.Front.Controllers.HomeController Show.Areas.Back.Controllers.HomeController
問題は、フロント エリアからホーム コントローラーに到達できないことです。context.MapRoute メソッドのオーバーロードに正しい名前空間を追加しても...
どんな助けでも大歓迎です。