C# mvc路由和webforms页面
一些背景: 我创建了一个新的ASP.NET MVC 3 Web应用程序。 然后我添加一个Webforms页面:C# mvc路由和webforms页面,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,一些背景: 我创建了一个新的ASP.NET MVC 3 Web应用程序。 然后我添加一个Webforms页面:~/ASPWebforms/Test.aspx 然后我在Global.asax文件中编辑路由,如下所示: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapPageRoute("Tes
~/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}
谢谢你的帮助 我可以帮你解决第二个疑问 它不起作用的原因是因为路线顺序很重要
每当它找到匹配项时,将不再测试该请求的路由。我在本页找到了第一个问题的解决方案: 本页有一句有趣的话: 请阅读“理解出站URL匹配”主题 史蒂夫书中的“算法”
你期望的路线是什么?