Dire que j'ai une route comme ceci:ASP.Net MVC: Formulaire avec méthode Obtenir la perte de paramètres sur Soumettre
"{controller}/{action}/{roomId}/{name}"
Et une action de forme comme celui-ci (Et oui il semble que cela dans l'action dans le html à savoir le traitement post serveur):
Room/Index/6/SomeThing?pageNumber=1&amountToShow=5
Et la forme est simple:
<form action = "Room/Index/6/SomeThing?pageNumber=1&amountToShow=5" method="get">
<button type="submit">SomeButton</button>
</form>
maintenant, lorsque le bouton est cliqué, le s de demande omehow semble à moitié perdre le pageNumber = 1 & amountToShow = 5 partie. En fait, lorsque j'ai regardé dans la liste ActionExecutingContext.ActionParameters, les paramètres sont là (pageNumber et amountToShow) mais il n'y a pas de valeurs. J'ai même regardé dans la requête, et il n'y a pas de paramètres de requête malgré le fait que l'URL soit "Room/Index/6/SomeThing? PageNumber = 1 & amountToShow = 5".
Je pensais que peut-être cela avait à voir avec le bouton et la forme, et peut-être cela n'a pas été possible, mais j'ajusté la route vers:
"{controller}/{action}/{roomId}/{name}/{pageNumber}/{amountToShow}"
Et il fonctionne, sauf l'URL est super formaté :
Room/Index/6/SomeThing/1/5
Ce qui est à prévoir puisque c'est apparemment ce travail cette fois-ci. Des idées?
MISE À JOUR
Comme ci-dessous suggèrent Adrian Godong, j'ai essayé d'utiliser les entrées cachées et il fonctionne, mais cela soulève encore plus de questions. Pourquoi est-ce qu'avec la route plus verbeuse a été capable de gérer les paramètres de demande sans valeurs cachées, mais la route raccourcie ne l'est pas.
Je peux essayer, mais je me demande toujours pourquoi l'action échoue comme ça. –
Cela fonctionne mais ajoute à la confusion. Il doit y avoir quelque chose d'étrange avec les formulaires, les get et les routes. –
apparemment c'est juste comment les formulaires html fonctionnent ... voir http://stackoverflow.com/questions/1116019/submitting-a-get-form-with-query-string-params-and-hidden-params-disappear qui parle à propos du même problème en dehors d'asp.net –