0

VS11 ベータ版の MVC4 インターネット プロジェクト テンプレートから作成した新しい MVC4 アプリがあります。Web サイトのホスティング プロバイダーにアプリをデプロイし、Global.asax クラスで次の行をアクティブのままにすると、MVC が既に存在するルートを登録しようとしているというエラーが表示されます。この行をコメントアウトすると、すべて正常に動作しますが、この質問で尋ねるように、エリア固有のコントローラーへのアクション リンクが壊れています。

AreaRegistration.RegisterAllAreas();
4

2 に答える 2

1

展開 bin ディレクトリに古い dll がある場合 (ある時点でプロジェクトまたは dll の名前を変更した場合)、このエラーが発生します。

デプロイ時に bin ディレクトリがクリーンアップされていることを確認してください。

于 2012-07-23T12:58:08.437 に答える
0

これは通常、ルート Web サイトのコントローラーと同じ名前のコントローラーが領域にある場合に発生します。つまり、「WebsiteNamespace.Controllers.HomeController」と「WebsiteNamespace.Areas.MyArea.Controllers.HomeController」です。

これを修正するには、ベース Web サイトのルートで名前空間を宣言する必要があります。

        routes.MapRoute("Default", "{controller}/{action}/{id}", new {
            controller = "Home",
            action = "Index",
            id = UrlParameter.Optional
        }, new[] { "WebsiteNamespace.Controllers" });
于 2012-07-28T14:09:24.007 に答える