ASP.NET MVC анализирует переменные без строки запроса URL - PullRequest
2 голосов
/ 14 июня 2009

Заголовок

Я хочу передать некоторые переменные с одной страницы на другую, но не хочу, чтобы они появлялись в URL. Когда я использую форму для публикации ActionResult, она работает нормально. Однако, когда я делаю это

return RedirectToAction("Trackers",new{page = 1, orderby=desc});

Я получаю URL:

http://examplesite.com/Trackers?page=1&orderby=desc

Можно ли как-то получить следующий URL-адрес, но при этом передать переменные страницы и порядка "за сцену"?

http://examplesite.com/Trackers

Спасибо TheLorax

Ответы [ 3 ]

4 голосов
/ 14 июня 2009

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

2 голосов
/ 14 июня 2009

Вы можете передать объект Model, содержащий номер страницы и порядок, вместо анонимного объекта, и ваш взгляд наследует класс модели передаваемого вами объекта. Ваш объект модели с номером страницы и порядком становится доступным для представления без использования строки запроса

Это, однако, не предпочтительный способ сделать это. Ваши объекты модели должны быть зарезервированы для их предназначения, которое передает фактические данные вашему представлению.

1 голос
/ 14 июня 2009

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

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

...