Обновить несколько частичное представление - PullRequest
0 голосов
/ 24 сентября 2010

Есть ли способ обновить несколько частичных представлений с контроллера? (возврат View ())

Спасибо

Update1: Например, содержимое моего экрана разделено на 2 части, слева - список клиентов, справа - информация о клиенте, информация о клиентах, выбранных в списке слева. Если я создаю нового клиента, при сохранении я бы обновил список (левая часть) и посмотрел детали (правая часть)

Ответы [ 3 ]

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

Я не думаю, что есть какой-либо автоматический способ сделать это, но вы могли бы использовать некоторые соглашения и:

  • Создание пользовательского результата просмотра, который принимает несколько результатов частичного просмотра, т.е. MultiplePartialViewResult
  • При выполнении результата пользовательского представления вызывайте каждый метод execute каждого из предоставленных представлений '. Обязательно оберните каждый элемент в div или в другом контейнере для удобства поиска по клиентскому сценарию
  • Получив ответ на вызов AJAX в клиентском скрипте, возьмите значение из каждого контейнера и замените его в соответствующих элементах, соответствующих частичным представлениям, которые были изначально отображены.

Для последнего шага вы можете использовать соглашение. Простой способ (при наличии только одного экземпляра для каждого частичного представления) поместить идентификатор целевого html-элемента для обновления в div / контейнер, который вы использовали для его переноса на втором шаге.

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

Исходя из того, что вы говорите, я думаю, что лучше использовать javascript и ajax для обновления с сервера.

Вы можете использовать Html.RenderPartialAction для достижения DRY, поместив его на страницу, а затем загрузив его с помощью ajax и javascript.

Если вы используете jQuery, то что-то вроде этого будет работать:

jQuery("#divToReload1").load('Url/To/PartialAction')...
jQuery("#divToReload2").load('Url/To/PartialAction')...

Просто поместите все это в одну функцию, и вы сразу перезагрузите все свои части.

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

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

Крис,

единственный способ, которым я могу думать, это просто сделать несколько частичных представлений встроенными в основной «вид» для обновления.затем они будут обновлены в том же цикле.в качестве альтернативы, вы могли бы иметь встроенные вспомогательные HTML-помощники, которые запускали подходящий код при обновлении представления.

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

конечно, правила могут быть нарушены:)

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