2011-04-21 44 views
0

可能重复:
Ways to define an ASP.NET MVC RouteAsp.net路由

我试图建立,将采取Test/page?id=XXX 下,无论发生什么事,并触发我的路由处理自定义路线。

我的问题是如何获得价值

的ID这是我心目中

RouteTable.Routes.Add("Test", new Route("Test/page?id=XXX}", new RouteHandler())); 
+0

你的意思是你有一个自定义的'RouteHandler'类? – 2011-04-22 08:26:03

回答

1

这个版本是在Global.asax中使用,但尝试:

routes.MapRoute(
    "Test", 
    "Test/page?id={id}", 
    new { controller = "Test", action = "Index" }, 
    new { id = @"\d+" } 
); 

最后一个可选参数会将id的值限制为数字,以获得更好的确定性。

1

假设测试是控制器和页面是动作

RouteTable.Routes.Add(new Route 
{ 
    Url = "[controller]/[action]/[id]" 
    Defaults = new { action = "Index", id (string) null }, 
    RouteHandler = typeof(MvcRouteHandler) 
}); 

但路由是非常依赖于上下文的。您需要查看其他路线并确保此路线按正确顺序排列。

+0

这个工作,如果我想从一个传入的URL重定向,如:www.some.com/test/page.aspx?id=44 – user426719 2011-04-21 19:14:12

+0

你想在哪里路由上述URL?要调用哪个动作方法? – neebz 2011-04-21 19:16:49

+0

我想触发一个自定义处理程序,它将执行基本的服务器重定向RouteTable.Routes.Add(“Test”,new Route(“Test/page.aspx?id = XXX}”,new RouteHandler())); – user426719 2011-04-21 19:22:57

0
 
if (RouteData.Values.ContainsKey("customerId")) 
    return RouteData.Values["customerId"].ToString();