2

これは、MVC2RCエリアでデフォルトのコントローラーを設定する際のトラブルの一種です。

しかし、彼の答えはうまくいかないので、私を満足させません。

私は以下を持っています

/Areas/TestArea/Controllers/HelloController
/Areas/TestArea/Views/Hello/Index

/Controllers/HomeController
/Views/Home/Index

次のルートで:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

routes.MapRoute(
    "Default2", // Route name
    "TestArea/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Hello", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

http:// servername / TestAreahttp:// servername / TestArea / Helloのように機能させるために、2つ目を追加しましたが、成功しませんでした。基本的なhttp://servername/は意図したとおりに機能します。

したがって、問題は、エリア内のデフォルトのコントローラーをどのように返すかということです。

編集:私が意味することを示すためにサンプルプロジェクトをアップロードしました:http://beginningasp.net/TestAsync.zip

4

1 に答える 1

3

デフォルトルートの前に Default2 ルートを登録して、デフォルト値に area=yourareaname を設定してみてください

routes.MapRoute(
    "Default2", // Route name
    "TestArea/{controller}/{action}/{id}", // URL with parameters
    new { controller = "Hello", action = "Index",area="TestArea",  id = UrlParameter.Optional } // Parameter defaults
);

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
于 2010-04-14T18:47:47.783 に答える