Возможно ли RedirectToRoute поверх POST вместо GET? - PullRequest
2 голосов
/ 10 марта 2011

Я пытаюсь выполнить перенаправление с одного контроллера на другой, передавая некоторые параметры. К сожалению, значения параметров долго и неприятно выглядят в строке запроса GET. Могу ли я в любом случае использовать POST вместо перенаправления, чтобы получить более привлекательный URL?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 10 марта 2011

Как все говорили, вы не можете перенаправить на сообщение.

Однако вы можете избежать уродливых URL-адресов, указав значения TempData вместо маршрута.

2 голосов
/ 10 марта 2011

Вы не можете сделать правильное перенаправление POST, но вы можете использовать JavaScript в браузере для имитации перенаправления POST:

<form id="myform" action="http://mywebsite.com/">
  <input name="myparameter" value="12345" type="hidden" />
</form>
<script>
  document.getElementById("myform").submit()
</script>

Это не настоящее перенаправление, и оно не будет работать так же хорошо, какперенаправление, но это должно работать.

0 голосов
/ 10 марта 2011

«Перенаправление» - это GET.Если вы делаете действительно прямое, то, по сути, информируете браузер о переходе на другой URL.Браузер затем делает еще один http-вызов (используя GET) для нового URL.URL может содержать параметры, но это всегда будет GET, а не POST.

Что вы можете сделать, это сохранить некоторые данные в сеансе, а затем, когда приходит второй (перенаправленный) запрос, вы можете получить доступ к этим значениямс сессии.

0 голосов
/ 10 марта 2011

Извините, нет.Перенаправления через POST просто не поддерживаются в спецификации HTTP .Большинство клиентов, реализующих обычные типы перенаправлений ( 301 - постоянные и 302 - временные ), отправляют запрос GET в новое местоположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...