J'ai un itinéraire avec plusieurs paramètres facultatifs. Ce sont des termes de recherche possibles dans différents domaines. Ainsi, par exemple, si je les champs clés, itemtype et texte puis-je avoir dans global.asax:Comment soumettre Nothing comme valeur de route vers ASP MVC
routes.MapRoute(_
"Search", _
"Admin.aspx/Search/{Key}/{ItemType}/{Text}", _
New With {.controller = "Admin", .action = "Search" .Key = Nothing, .ItemType = Nothing, .Text = Nothing} _
)
Mon action prend des paramètres facultatifs:
Function Search(Optional ByVal Key As String = Nothing, _
Optional ByVal ItemType As Integer = 0, _
Optional ByVal Text As String = Nothing, _
Optional ByVal OtherText As String = Nothing)
Il vérifie ensuite si la clé et le texte les chaînes ont une valeur non nulle (et non vide) et ajoutent des termes de recherche à la requête db si nécessaire.
Cependant, est-il possible d'envoyer une valeur nulle pour, par exemple, Clé mais toujours envoyer une valeur pour Texte? Si oui, à quoi ressemble l'URL? (Admin.aspx/Search // 0/Foo ne fonctionne pas :))
Je sais que je peux gérer cela en utilisant un tableau de paramètres à la place, mais je me demandais si cela était possible en utilisant le type d'itinéraire décrit? Je pourrais bien sûr définir une autre valeur comme équivalente à null (par exemple, un espace /% 20) mais est-il possible d'envoyer une valeur nulle dans l'URL? Je ne le soupçonne pas, mais je pensais voir si quelqu'un en connaissait un. J'utilise ASP MVC 2 pour ce projet.