Обновите две версии DIV для успеха AJAX - объедините JavaScriptResult и PartialViewResult? - PullRequest
1 голос
/ 17 мая 2009

В данный момент у меня есть jQuery, который выполняет POST для контроллера, который возвращает ContentResult. Когда событие OnSuccess запускается из jQuery, он обновляет div с возвращенными данными. Теперь я хочу обновить еще один DIV с данными модели.

Я думаю, что на мой взгляд, есть RenderPartial, создайте сообщение и верните PartialResult, который будет обрабатывать этот новый div, но как насчет DIV, который я ранее заполнял?

Возможно ли объединение JavaScriptResult и PartialResult? Результат JavaScript обрабатывает первый DIV, который я упомянул, а PartialResult - новый DIV.

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 мая 2009

Вот как я это сделал.

Мой основной вид теперь выполняет RenderPartial ("PartialViewName", модель).

В верхней части Частичного представления я проверяю, является ли ViewData ["AJAXReturn"] нулевым. Если это не так, я вызываю другое частичное представление и передаю элемент ViewData ["AJAXReturn"], который содержит исходный ответ AJAX.

В своем методе действия Controller я добавляю свое исходное ответное сообщение в ViewData ["AJAXReturn"], затем я вызываю методы для обновления данных моей модели и возврата PartialView ("PartialViewName", updatedModel).

Теперь ViewData не является нулевым, поэтому исходный DIV заполняется через ViewData, и вызов PartialView с новой моделью отображает второй DIV. Это делается с помощью события OnSuccess в посте jQuery, которое выполняет $ ('#singdiv'). Html (responsefromPartialViewreturn);

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 17 мая 2009

Хотя это добавляет больше шума в канал, я думаю, что более понятным вариантом было бы сделать отдельный вызов от вашего контроллера, чтобы получить дополнительный PartialResult, предположительно в событии OnSuccess.

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