ASP.Net MVC: Passage d'un paramètre de chaîne à une action à l'aide de RedirectToAction ()

Je voudrais savoir comment passer un paramètre de chaîne à l'aide de RedirectToAction().

Disons que j'ai cet itinéraire:

routes.MapRoute(
  "MyRoute",
  "SomeController/SomeAction/{id}/{MyString}",
  new { controller = "SomeController", action = "SomeAction", id = 0, MyString = UrlParameter.Optional }
);

Et dans SomeController, j'ai une action à faire une redirection comme suit:

return RedirectToAction( "SomeAction", new { id = 23, MyString = someString } );

J'ai essayé cette redirection avec someString = "!@#$%?&* 1" et il échoue toujours, peu importe si je encoder la chaîne. J'ai essayé d'encoder avec HttpUtility.UrlEncode(someString), HttpUtility.UrlPathEncode(someString), et avec l'Uri.EscapeUriString(someString) en vain.

Donc j'ai eu recours à nous TempData passer someString, mais tout de même, je serais curieux de savoir comment rendre le code du travail ci-dessus, juste pour satisfaire ma curiosité.

source d'informationauteur Jean-François Beauchamp