爲web表單使用新的(ish)url重寫功能,但是我試圖將參數聲明爲可選參數時遇到問題。在webforms中使用url路由的可選URL參數
這裏是場景。我有一個搜索功能,它接受兩個參數,SKU和名稱。理想情況下,我希望此搜索功能的URL爲/ products/search/skuSearchString/nameSearchString。我還有各種管理頁面,需要映射到諸如/ products/management /或/ products/summary /之類的東西。換句話說,URL中的最後兩個參數需要是可選的 - 可能有一個搜索字符串,或者兩個,或者沒有。
這是怎麼了,我宣佈我的虛擬網址:
Friend Const _VIRTUALURL As String = "products/{action}/{sku}/{*product}"
,並添加以下缺省值:
Me.Defaults = New Web.Routing.RouteValueDictionary(New With {.sku = "/"})
Me.Defaults = New Web.Routing.RouteValueDictionary(New With {.product = "/"})
我有兩個問題與此設置。最緊迫的是該網址似乎期望sku參數。因此,/ products/summary /無法找到,但/ products/summary/anyTextAtAll /會映射到正確的頁面。無論默認設置爲「/」還是「」,您都會得到相同的結果。我如何確保Sku和產品參數都是可選的?
第二個更值得關注。理想情況下,我希望url能夠判斷它是否有產品搜索字符串或網址搜索字符串。做到這一點的顯而易見的方法是將其中一個或另一個默認設置爲我可以接受並忽略的值,但是有沒有更好的方法來處理它?