これは私が長い間経験してきた煩わしさですが、今では私のクライアントが私にそれに対処するように頼んでいます。
(デフォルト以外のルートによって)生成されるすべてのルートで、クエリ文字列値が追加されます: " Area=
"
例として:
// RouteConfig.Register():
routes.MapRoute(
"ProfileDetails",
"{slug}",
new { controller = "Profile", action = "Details" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
アクションへのURLを生成するためBadgeController.Index
に、デフォルトルートが適用され、結果は/Badge
...になります。これが期待されることです。
ただし、アクションへのURLを生成するためProfileController.Details(someUser)
に、ProfileDetailsルートが適用され、結果は/someUser?Area=
...で機能しますが、これ?Area=
は不要で面倒です。
プロジェクトに領域がありません。Area=
そのクエリ文字列値を削除するにはどうすればよいですか?これは、この例の「ProfileDetails」ルートだけでなく、事前定義されたデフォルトルートではないすべてのルートで発生します。
AreaRegistration.RegisterAllAreas()
必須ではないと思いますので、Global.asaxファイルからを削除してみました。