背景: 新しい ASP.NET MVC 3 WebApplication を作成します。次に、Webforms ページを追加します。~/ASPWebforms/Test.aspx
次に、Global.asax ファイルのルーティングを次のように編集します。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Test", "Test/", "~/ASPWebforms/Test.aspx");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
ブラウザに入力するhttp://localhost:54847/Test
と、すべてが期待どおりに機能します。
問題は、他のすべてのリンクが次のように見えることです。http://localhost:54847/Test?action=Index&controller=Home
また、ルートの順序を変更しようとしました:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapPageRoute("Test", "Test/", "~/ASPWebforms/Test.aspx");
}
しかし、それhttp://localhost:54847/Test
以降は機能しません。
http://localhost:54874/Test
リンクがに行くことを期待しており~/ASPWebforms/Test.aspx
、他のリンクは通常のmvcスタイルとして機能します{controller}/{action}/{id}
助けてくれてありがとう!