【问题标题】:Optional parameter in url routing asp.net 4.0 (not in MVC)?url路由asp.net 4.0中的可选参数(不在MVC中)?
【发布时间】:2011-07-19 15:37:12
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 你能告诉我们更多细节吗?!

标签: asp.net c#-4.0 url-routing asp.net-4.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");

【讨论】:

    【解决方案2】:
    routes.MapPageRoute(
           "ProductsBrowse",
            "browse/{BrowseBy}/{Category}",
            "~/Pages/Products/Browse.aspx",
            false,
            new RouteValueDictionary { { "Category", string.Empty } }
        );
    

    asp.net webforms routing: optional parameters

    【讨论】:

    • 我认为这不可能以网络形式出现。将 BrowseBy 参数保留为 emtpy 怎么样?那么它会像'browse//category'吗?
    猜你喜欢
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    相关资源
    最近更新 更多