2010-09-29 116 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实现的唯一方法。