2009-08-19 3 views
1

У меня есть ActionResult, который устанавливает TempData как объект.Tempdata в ASP.Net MVC с запросом JSON

Отображаемая страница содержит кнопку, которая запускает запрос JSON на тот же контроллер. (Для популяции jqGrid).

TempData в запросе JSON имеет значение null - почему это происходит?

Еще более странно, если бы у меня была кнопка, которая отправляется на один и тот же контроллер, и я нажимаю на нее вместо кнопки запроса JSON, там будет TempData, но если я нажму кнопку JSON, то кнопка post, TempData будет null.

Помогите оценить.

Спасибо, Крис

+0

Есть ли у вас образцы кода, которые вы могли бы нам показать? –

+0

Я согласен с Джеймсом, нам нужно увидеть код здесь. – Lazarus

ответ

5

Не пытайтесь передавать данные от одного действия к другому через TempData, когда не перенаправляет. TempData is only for redirects. Весьма вероятно, что какой-то другой элемент вашей страницы отправит запрос, прежде чем нажимать кнопку, в результате чего элементы, которые вы бежали в TempData, исчезли. Вот почему TempData предназначен только для перенаправления; только при перенаправлении у вас может быть любой уверенности на всех того, что будет следующим запросом.

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

HTTP не имеет гражданства. Учитесь жить с этим. Не пытайтесь ввести состояние на свой сервер; вы пожалеете об этом, если вы это сделаете.

Смежные вопросы