【发布时间】:2011-07-19 15:37:12
【问题描述】:
在使用 asp.net 4.0 时,Url 路由中是否可以有可选参数?
我的意思是我只是传递一个参数的值而跳过另一个参数的值?
谢谢。
【问题讨论】:
-
你能告诉我们更多细节吗?!
标签: asp.net c#-4.0 url-routing asp.net-4.0
在使用 asp.net 4.0 时,Url 路由中是否可以有可选参数?
我的意思是我只是传递一个参数的值而跳过另一个参数的值?
谢谢。
【问题讨论】:
标签: asp.net c#-4.0 url-routing asp.net-4.0
我不能给你答案(我还在寻找)但也许是一种解决方法。 据我了解您的问题,您希望能够执行以下操作:
a) my-pets.com/dog/brown/long/good-temper
b) my-pets.com/dog///mean-barker
c) my-pets.com/dog/black/
用户可以省略参数(在示例 b 中)、狗的颜色和毛皮的种类(短或长)
我的解决方法如下:
string furType = Page.RouteData.Values["furType"] == null ? "-" : Page.RouteData.Values["furType"].ToString();
这允许以下路线
在我的代码中,我使用它来过滤数据库中的值
var pet = new Pet();
pet.getPets(pet.filter(petType="dog", petTemper="mean-barker");
【讨论】:
routes.MapPageRoute(
"ProductsBrowse",
"browse/{BrowseBy}/{Category}",
"~/Pages/Products/Browse.aspx",
false,
new RouteValueDictionary { { "Category", string.Empty } }
);
【讨论】: