2010-09-29 161 views
0

我在webforms應用程序中使用asp.net路由。ASP.NET webforms通配符路由

我想實現以下URL格式:

HTTP:// [域]/{父類別}/{子類別}/{子類別}

其中使右大多數類別都可用作路線值。

 routes.MapPageRoute(
      "category-browse", 
      "{*category}", 
      "~/category.aspx" 
     ); 

這將通過所有類別,即「培訓師/運行/耐克運行員培訓」這樣我就可以抓住的最後一個帶着幾分:

目前,我有以下途徑來實現這的字符串操作。

有沒有更好的方法來做到這一點?

+0

如果你需要靈活的'可選'值 - 如果用戶不提供{子類別},那麼你顯示所有的子類別 - 那麼你的技術是非常好的。只需使用String.split來分隔您的參數 – Clicktricity 2010-09-29 11:25:03

+0

這正是我們目前正在做的。我認爲這是我們能做的最好的,因爲通配符參數需要成爲路由的最右邊部分。 – 2010-10-05 16:46:23

+0

你有沒有找到更好的選擇?我正在調查這個,並且很好奇你最終使用了什麼方法。 – Mike 2011-07-18 22:17:32

回答

0

我假設你可以有任意數量的子類別參數。如果是這樣的話,你正在做的方法是正確的。 ASP.NET路由不支持在URL中間包含全部參數。它必須在最後。因此,您所描述的是編寫自己的自定義RouteBase實現的唯一方法。