2014-12-31 6 views
1

Мой сценарий для MVC4: У меня есть контактная форма с последующей страницей опроса. На каждой странице сайта есть опция «изменить язык», которая обновляет страницу, передает параметр querystring обратно на ту же страницу, меняет CurrentCulture и вытягивает текст из соответствующего файла ресурсов.Сохранять данные объекта во время обновления страницы

Когда пользователь отправляет форму контакта, они переходят на страницу опроса. Я не отправляю идентификатор контакта на страницу опроса через querystring по очевидным соображениям безопасности. То, что я делаю, - установить значение объекта TempData ["ContactId"] при отправке формы контакта в методе контроллера и позволить методу контроллера опроса считывать с этого объекта.

Проблема заключается в том, что пользователь находится на странице опроса после подачи, а затем выбирает изменить язык. Это заставляет страницу обновляться, а объект TempData - нуль.

Любые советы о том, как сохранить контакт при обновлении страницы, как это?

+0

Я думаю, что 'TempData' [сохраняется только через один запрос] (http://forums.asp.net/post/3692191.aspx), поэтому, возможно, вы можете сохранить данные языка в переменной сеанса. – alex

+0

Сессия работает отлично, спасибо. – TexasT

+0

Удивительный. Если это все, что вам нужно, и оно работает для вас, я пошел дальше и отправил свой комментарий в качестве ответа. – alex

ответ

0

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

0

Сессия и TempData - это то же самое.

Однако вы должны использовать TempData, потому что объект автоматически удаляется из памяти сеанса после его обращения один раз.