2011-04-21 60 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();