Игра с новой функциональностью (ish) перезаписи URL для веб-форм, но у меня возникают проблемы при попытке объявить параметры необязательными.
Вот сценарий.У меня есть функция поиска, которая принимает два параметра, sku и name.В идеале, я бы хотел, чтобы URL этой функции поиска был / products / search / skuSearchString / nameSearchString.У меня также есть различные страницы управления, которые нужно сопоставить с такими вещами, как / products / management / или / products / summary /.Другими словами, последние два параметра в URL-адресе должны быть необязательными - может быть одна строка поиска, или два, или ни одного.
Вот как я объявил свой виртуальный 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 = "/"})
У меня две проблемы с этой настройкой.Наиболее неотложным является то, что URL, похоже, ожидает параметр sku.Таким образом, / products / summary / не может быть найдено, но / products / summary / anyTextAtAll / отображается на правильную страницу.Вы получите тот же результат, независимо от того, установлены ли значения по умолчанию "/" или "".Как сделать так, чтобы параметры sku и product были необязательными?
Второй вопрос больше интересует.В идеале я хотел бы, чтобы URL мог указывать, есть ли у него строка поиска продукта или строка поиска URL.Очевидный способ сделать это - установить одно или другое значение по умолчанию для значения, которое я могу просто подобрать и проигнорировать, но есть ли более аккуратный способ его обработки?