url路由asp.net 4.0中的可选参数(不在MVC中)?

时间:2011-07-19 15:37:12

标签: asp.net c#-4.0 url-routing asp.net-4.0

使用asp.net 4.0时,是否可以在Url路由中使用可选参数?

我的意思是我只传递一个参数的值并跳过另一个参数的值?

感谢。

2 个答案:

答案 0 :(得分:1)

我无法给你一个答案(我仍然在寻找),但也许是一种解决方法。 据我了解您的问题,您希望能够执行以下操作:

  

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();

这允许以下路线

  

http://my-pets.com/dog/-/-/mean-barker

在我的代码中,我使用它来过滤数据库中的值

var pet = new Pet();
pet.getPets(pet.filter(petType="dog", petTemper="mean-barker");

答案 1 :(得分:0)

routes.MapPageRoute(
       "ProductsBrowse",
        "browse/{BrowseBy}/{Category}",
        "~/Pages/Products/Browse.aspx",
        false,
        new RouteValueDictionary { { "Category", string.Empty } }
    );

asp.net webforms routing: optional parameters