Как работать с мультипанельным макетом
У меня есть веб-страница, которая включает в себя 1 главную панель с информацией и боковую панель, которая может отображать одну из нескольких панелей в зависимости от того, что происходит на главной панели. Так, например, главная панель может отображать список проектов, и вы можете щелкнуть проект, который должен показать панель редактирования. Или вы можете удалить проект, который должен показать панель удаления. Там около 5 или 6 панелей. Это не все приложение, поэтому я не могу сделать основную панель частичным видом.
Как бы я это реализовал? В основном я пытаюсь вернуть два представления в контроллере, но, очевидно, это невозможно. Я предполагаю, что главной панелью должен быть вид, возвращаемый контроллером. Но как мне тогда установить боковую панель? Можно ли как-то объединить 2 вида в 1 в пределах одного действия контроллера? Или я должен связать два контроллера на 1 действие? Как бы я это сделал?
Я действительно новичок в ASP.NET MVC, но у меня проблемы с поиском ответа сам. Спасибо за терпеливость.
2 ответа
В отношении данных вы должны использовать один объект модели представления, содержащий данные для разных панелей, как упоминалось @AlexC.
В пользовательском интерфейсе вы можете использовать плагин jquery для отображения различных панелей, как показано здесь - http://jquerytools.org/demos/tabs/index.html
В этом случае вы можете использовать ViewModel, чтобы собрать несколько моделей доменов и передать их представлению, как подробно описано здесь (это то, что я хотел бы сделать). Точно так же вы можете просто передать объект главной панели как строго типизированный объект и использовать ViewData для передачи других элементов данных. Затем вы можете использовать отдельные частичные представления для отдельных панелей, визуализируя их путем передачи данных с использованием
@{ Html.RenderPartial("ViewName", dataItem); }