MVC 2.0 Форма сообщения к действию вместо перенаправления к действию - PullRequest
0 голосов
/ 17 августа 2010

Я использую T4MVC для перенаправления на другое действие return RedirectToAction (MVC.MyController.MyAction ()) ;.В результате это делает запрос на получение.

Есть ли способ сделать пост-запрос от контроллера.Я хочу сохранить все то же самое, но только сделать пост вместо того, чтобы получить.Я не могу найти какие-либо методы для этого.Я нашел один пост помощник здесь http://geekswithblogs.net/rakker/archive/2006/04/21/76044.aspx, но я не могу передать любые значения мне нужно, используя этот пост помощник.Я пытался передать значения через TempData, но они не приходят, когда я использую этот помощник.Может быть, у кого-то есть идеи?

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

Должен ли я использовать сессию по этой причине?

Ответы [ 2 ]

1 голос
/ 17 августа 2010

RedirectToAction всегда будет выполнять GET, а не POST (он возвращает HTTP 302 в браузер, который затем выдаст запрос GET).

Для сохранения данных при перенаправлении, если это данныеэто может быть легко представлено как строка и сохранено в строке запроса, тогда вы можете просто добавить его к значениям маршрута перенаправления.Например,

return RedirectToAction("Search", new { searchString = "whatever" });

Если это сложный тип, вам нужно будет сохранить его в TempData.Ряд других вопросов по StackOverflow (например, this one) содержит подробности о том, как.

Если многократное хранение и чтение из TempData в вашем приложении нарушает ваш код, то выинкапсулируйте это с помощью атрибута PassParametersDuringRedirect и универсального RedirectToAction, доступного в проекте MvcContrib .Некоторые подробности об этой технике доступны здесь .

0 голосов
/ 17 августа 2010

единственный способ сделать сообщение - это заполнить форму и отправить ее, либо с помощью кнопки отправки, либо с помощью javascript. Любая информация, которую вы хотите передать этому действию, должна быть в этой форме, и вы найдете все, что размещено в FormCollection (надеюсь, я правильно написала).

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