Jouer avec la nouvelle fonctionnalité de réécriture d'url (ish) pour les formulaires Web, mais j'ai des problèmes pour essayer de déclarer les paramètres comme facultatifs.Paramètres d'URL facultatifs avec routage d'URL dans des formulaires Web
Voici le scénario. J'ai une fonction de recherche qui accepte deux paramètres, sku et nom. Idéalement, j'aimerais que l'URL de cette fonction de recherche soit/products/search/skuSearchString/nameSearchString. J'ai aussi plusieurs pages de gestion qui doivent correspondre à des choses comme/products/management/ou/products/summary /. En d'autres termes, les deux derniers paramètres de l'URL doivent être facultatifs - il peut y avoir une chaîne de recherche, deux ou aucune.
Voilà comment je l'ai déclaré mon URL virtuelle:
Friend Const _VIRTUALURL As String = "products/{action}/{sku}/{*product}"
et a ajouté les paramètres par défaut suivants:
Me.Defaults = New Web.Routing.RouteValueDictionary(New With {.sku = "/"})
Me.Defaults = New Web.Routing.RouteValueDictionary(New With {.product = "/"})
J'ai deux problèmes avec cette configuration. Le plus pressant est que l'url semble attendre un paramètre sku. Donc,/products/summary/ne peut pas être trouvé mais/products/summary/anyTextAtAll/correspond à la bonne page. Vous obtenez le même résultat si les valeurs par défaut sont définies sur "/" ou "". Comment puis-je m'assurer que les paramètres sku et les paramètres du produit sont facultatifs?
La seconde est plus d'un intérêt. Idéalement, j'aimerais que l'url sache si elle a une chaîne de recherche de produit ou une chaîne de recherche d'URL. La façon évidente de faire ceci est de faire en sorte que l'un ou l'autre par défaut soit une valeur que je peux simplement prendre et ignorer, mais y a-t-il une façon plus simple de le gérer?