mvc路由和webforms页面
问题描述:
一些背景: 我创建了一个新的ASP.NET MVC 3 WebApplication。 然后我添加Web表单页面:~/ASPWebforms/Test.aspx
然后我编辑路由在Global.asax文件是这样的:mvc路由和webforms页面
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}
THX对您有所帮助!
答
我找到了这个网页上对第一个问题的解决方案:
http://forums.asp.net/p/1589809/4028028.aspx
从这个页面的一个有趣的句子:
请阅读主题“了解出站URL匹配 算法“在史蒂夫书中。
答
我可以帮助第二个疑问。
它不工作的原因是因为航线顺序很重要。
http://msdn.microsoft.com/en-us/library/cc668201.aspx
每当它找到一个匹配,没有更多的路由将被测试以该请求。
你期待的路线是什么? http:// localhost:54847/Home/Index? –
我现在的意图在上面。 – beatoss