2009-11-04 4 views
2

Я ищу для создания приложения ASP.NET MVC, где многие экраны будут иметь несколько разных видов. В идеале пользователь сможет принести предметы, которые им требуются, на свою рабочую область в стиле портала. Даже если это невозможно, для разных классов пользователей должно быть множество общих элементов, которые могут быть разными: что-то трудно достичь с традиционным наследованием.Создание страниц с несколькими видами

Мне кажется, что структура URL позволяет создавать только один контроллер и для этого выводить один вид за раз (и только один) - не размещать несколько просмотров на странице. Поиск здесь я видел ссылку на субконтроллеры MVC Contrib, но я не могу их увидеть на сайте http://www.codeplex.com/MVCContrib, чтобы проверить их дальше?

Могут ли быть субконтроллерами? Если да, то где я их сейчас найду. Если нет, что бы вы предложили?

+0

Возможно, вы имеете в виду ** веб-части **, когда вы говорите о * страницах с несколькими видами *? –

+0

Я имею в виду нечто вроде веб-частей: но каждая часть будет иметь свой собственный контроллер. Модель ViewViewView ControllerControllerController M (VC) n ??? типа, где, возможно, контроллеры могут сообщать друг другу, но, конечно, не действуют друг на друга. Подобно (ghastly) концепции удаления нескольких фреймов, каждый из которых указывает на свой собственный URL MVC на одной странице. – Andiih

ответ

2

Если вы хотите использовать asp.net mvc, то вы можете работать с частичными видами, которые будут/должны давать вам функциональность типа «веб-части», которая звучит так, как будто вы хотеть. Затем вы можете ограничить частичные представления, которые вы хотите видеть, в зависимости от разрешений и т. Д. На просмотрах главной страницы (это может быть открыто через класс базового контроллера или что-то еще).

Я сделал немного поиска и придумал несколько ссылок, которые могут оказаться полезными ...

Jeffrey Palermo - Беседы о шаблонировании частичного вида

Rob Conery - с помощью пользовательских элементов управления с осиной. чистый MVC

mikesdotnetting.com - ASP.NET MVC Частичные Представления и строго типизированный Пользовательские ViewModels (не читали все это, но это выглядит довольно usefu)

Надеется, что это помогает ,

+0

Thx. Будут исследовать их. – Andiih

+0

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

0

Контроллеры не связаны ни с какими конкретными видами. В зависимости от вашей бизнес-логики контроллер/действие может отображать любое ваше мнение.

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

+0

Проблема в том, что мне нужно показать несколько вещей с независимым поведением на одной странице. В идеале это были бы множественные представления с несколькими независимыми контроллерами. – Andiih

0

Похоже, вы принимаете около 2 разные вещи:

  • Добавление элементов на странице веб-части не ASP.NET MVC
  • Там нет никаких проблем с помощью контроллера, чтобы выбрать, какой вид, чтобы показать, но только один может быть показан за раз.

EDIT

То, что вы хотите сделать, требует как Sharepoint и ASP.NET MVC. Их можно объединить, см.: Using Asp.Net MVC with SharePoint

+0

Я отредактировал вопрос, чтобы попытаться уточнить. Я хочу сделать что-то похожее на веб-страницы с ASP.NET MVC. Я понимаю, что контроллер может выбрать, какой вид показать. Он не может выбирать несколько видов, а также не может быть нескольких контроллеров и просмотров, способствующих одной странице: это то, что я хотел бы! – Andiih

1

Взгляните на сборку фьючерсов и на реализацию RenderAction(). Хотя это не чистый MVC, их можно в основном использовать в качестве виджетов. Они вызываются из представления и проходят через отдельный контроллер, который затем отображает частичный вид. Это похоже на то, что вы можете искать.

Вот пример ...

//Various view data 

<div id="user-info"> 
    <% Html.RenderAction("UserInfo"); %> 
</div> 

//Rest of view data 

Это будет искать метод действия с именем «UserInfo» на текущем контроллере. Затем этот контроллер может выполнить то, что ему нужно, и отправить результаты на частичное представление, которое будет отображаться вместо Html.RenderAction().

Смежные вопросы