ASP.Net MVC: передача строкового параметра действию с помощью RedirectToAction ()

Я хотел бы знать, как передать строковый параметр с помощью RedirectToAction ().

Допустим, у меня есть этот маршрут:

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

А в SomeController у меня есть действие, выполняющее перенаправление следующим образом:

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

Я пробовал это перенаправление с помощью someString = "! @ # $%? & * 1 "и он всегда терпит неудачу, независимо от того, кодирую ли я строку. Я пробовал кодировать ее с помощью HttpUtility.UrlEncode (someString), HttpUtility.UrlPathEncode (someString) и Uri.EscapeUriString (someString), но безрезультатно.

обратились к нам TempData для передачи someString, но все же мне было бы любопытно узнать, как заставить работать приведенный выше код, просто чтобы удовлетворить мое любопытство.

9
задан Jean-François Beauchamp 3 February 2012 в 03:12
поделиться