ASP.Net MVC TempData - как сохранить состояние - PullRequest
3 голосов
/ 24 сентября 2010

Мы используем ASP.Net MVC TempData для хранения данных формы между обновлениями страниц. У нас есть кнопка на странице, которая позволяет пользователю выполнить определенное действие. Если пользователь нажимает эту кнопку один раз, она работает нормально. Если они дважды нажимают кнопку, что разрешено, мы теряем данные TempData. Мы должны убедиться, что данные TempData сохраняются независимо от того, сколько раз пользователь нажимает кнопку. Кстати, кнопка активирует URL.Action и использует Ajax.

Ответы [ 3 ]

5 голосов
/ 18 октября 2010

TempData.Keep ()

2 голосов
/ 24 сентября 2010

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

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

0 голосов
/ 24 сентября 2010

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

TempData для передачи данных в следующее действие / запрос.Это больше относится к сеансу.

Если вы все еще хотите использовать TempData, убедитесь, что для всех связанных действий контроллера снова установлено одно и то же значение TempData.

...