ASP.NET 4.0 で開発された既存の Web アプリケーションがあります。アプリに MVC 機能を追加したいので、Scott Hanselman の記事Integrating ASP.NET MVC 3 into existing upgrade ASP.NET 4 Web Forms applicationsに従って MVC をアプリに統合しました。MVC ルーティングは貪欲であるため、次のコードを Global.asa に追加して、空の URL が Default.aspx に移動するようにしました。
routes.MapPageRoute("WebFormsDefault", "", "~/Default.aspx");
ここでの問題は、ActionLinks と RouteLinks が正しく形成されないことです。次を使用してアクションリンクを作成しようとすると:
@Html.ActionLink("Item List Page", "List", "Item")
次の URL が作成されます。
"/SiteName/?action=List&controller=Item
この同じ問題を抱えている他の人からの投稿をいくつか見つけましたが、どれも答えがありません。これは単なるバグですか?MVC を WebForms アプリに統合するのは一般的に悪い考えですか? または、これを修正して、ユーザーが最初にサイトにアクセスしたときに Default.aspx ページが表示され、ActionLinks と RouteLinks が正しく機能するようにする方法はありますか?