У меня есть представление, состоящее из верхних, левых и нижних заголовков и основного содержимого. Предположим, что во время запроса AJAX мне нужно обновить HTML верхней, нижней и основной панелей (левый заголовок должен оставаться неизменным).ASP.NET MVC и AJAX
Мне было интересно, какой был бы лучший способ достичь этого. Первая мысль заключалась в том, чтобы положить основную панель содержимого в частичную и иметь действие контроллера, которое вернет PartialView. Это не сработает, потому что поскольку действие возвращает только HTML главной панели, я не могу обновить верхний и нижний заголовки.
Поэтому, если я помещаю верхние и нижние заголовки в свои собственные частичные виды, мне понадобится мое действие контроллера, чтобы возвращать несколько частичных представлений. Возможно ли это вообще, или я делаю что-то совершенно не так?
Я видел, что это возможно render a partial view to a string, поэтому я подумал, что могу использовать эту технику в действии, чтобы вернуть объект JSON с 3 свойствами, представляющими HTML из 3 частичных элементов, которые мне нужно обновить. Но это походит на меня совсем неправильно, если возможно вообще.
Еще одна идея, которую я имел, заключалась в том, чтобы вернуть объект JSON, содержащий только данные, необходимые для частичных, и использовать javascript для построения HTML. Но создание пользовательского интерфейса в javascript выглядит сложной задачей (основное содержимое частично использует MvcContrib's GridView с поиском и сортировкой).
Поэтому я был бы очень благодарен за предложения относительно того, что было бы самым чистым подходом к решению такого сценария. Также было бы удобно адаптивное решение: например, если у пользователя есть отключенный javascript, он просто перезагрузит всю страницу без AJAX.
ОБНОВЛЕНИЕ:
Andrew Siemersuggested размещения каждой секции на свой собственный частичный вид и выполнять множество запросов Ajax. Это похоже на совершенно правильный подход, но, к сожалению, он не применим в моем сценарии из-за следующей детали, которую я пропустил в своем первоначальном описании проблемы: верхний заголовок фактически используется для отображения сообщений об ошибках/информации о событиях, происходящих на главной панели. Так, например, мне нужно показать сообщение об ошибке в случае возникновения исключения при извлечении модели для главной панели. Таким образом, только один запрос может быть сделан для обновления этих двух панелей.
могли бы вы взглянуть на это: http://stackoverflow.com/questions/7086440/mvc-validating-binded- to-entitiy-with-reference-to-other-entities pls (не знаю, как с вами связаться напрямую) :) thnx – cpoDesign