很奇怪为什么在默认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路由的顺序与页面路由交换时,它按预期工作。
答案 0 :(得分:-1)
这适用于asp.net Web表单路由。 你可以看到
http://msdn.microsoft.com/en-us/library/system.web.routing.routecollection.mappageroute.aspx