为什么混合MVC和webforms时路由映射的顺序很重要?

时间:2011-04-12 18:01:06

标签: asp.net-mvc

很奇怪为什么在默认MVC路由之前声明MapPageRoute会导致UrlHelper.GenerateUrl出现问题。

我在Global.asax.cs中开始使用它:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRoute( "MyApp", "home/my-app", new { controller = "Home", action = "MyApp" } );
    routes.MapPageRoute( "MyOldWebForm", "oldform.aspx", "~/WebForms/OldForm.aspx" );

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Site", action = "Index", id = UrlParameter.Optional } );
}

视图中的任何引用(如@Html.BeginForm()或控制器调用结果(如RedirectToAction("Index", "Errors", new {fault = "itemMissing"} );)都会产生URL“oldform.aspx”。

当我将默认MVC路由的顺序与页面路由交换时,它按预期工作。

1 个答案:

答案 0 :(得分:-1)