Как работать с мультипанельным макетом - PullRequest
1 голос
/ 01 апреля 2012

У меня есть веб-страница, которая включает в себя 1 главную панель с информацией и боковую панель, которая может отображать одну из нескольких панелей в зависимости от того, что происходит на главной панели. Так, например, на главной панели может отображаться список проектов, и вы можете щелкнуть проект, который должен показать панель редактирования. Или вы можете удалить проект, который должен показать панель удаления. Там около 5 или 6 панелей. Это не все приложение, поэтому я не могу сделать основную панель частичным видом.

Как бы я это реализовал? В основном я пытаюсь вернуть два представления в контроллере, но, очевидно, это невозможно. Я предполагаю, что главной панелью должен быть вид, возвращаемый контроллером. Но как мне тогда установить боковую панель? Можно ли как-то объединить 2 вида в 1 в пределах одного действия контроллера? Или я должен связать два контроллера на 1 действие? Как бы я это сделал?

Я действительно новичок в ASP.NET MVC, но у меня проблемы с поиском ответа. Спасибо за ваше терпение.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

В отношении данных вы должны использовать один объект модели представления, содержащий данные для разных панелей, как упоминалось @AlexC.

В пользовательском интерфейсе вы можете использовать плагин jquery для отображения различных панелей, как показано здесь - http://jquerytools.org/demos/tabs/index.html

0 голосов
/ 01 апреля 2012

В этом случае вы можете использовать ViewModel, чтобы собрать несколько моделей доменов и передать их представлению как подробно здесь (это то, что я бы сделал).Точно так же вы можете просто передать объект главной панели как строго типизированный объект и использовать ViewData для передачи других элементов данных.Затем вы можете использовать отдельные частичные представления для отдельных панелей, отрисовывая их, передавая данные, используя

@{ Html.RenderPartial("ViewName", dataItem); }
...