ASP.NET MVC с древовидной структурой

Я готовлю скелет приложения ASP.NET MVC с базовыми функциями CRUD для продуктов и деталей, включенных в эти продукты. Приложение содержит пару строго типизированных представлений, основанных на MasterPage, и теперь я хочу добавить виджет для отображения дерева меню. Это дерево меню будет отражать структуру Продукты / Части, поэтому оно связано с содержимым, отображаемым в главном окне.

Я искал форумы и нашел различные способы рендеринга дерева и включения нового виджета в приложение:

  • jquery.treeview - предоставляет красиво выглядящее дерево, но как я могу использовать его (построить, визуализировать, передать в представление) в моем приложении?
  • RenderPartial, RenderAction и т. Д.- кажется очень ясным, поэтому я собирался использовать метод RenderAction, чтобы включить мой виджет в главную страницу, но как я могу построить / отобразить дерево, которое будет отображаться?
  • расширить HtmlHelper для создания нового метода Html.RenderTree (хороший пример по адресу: http://www.matthidinger.com/archive/2009/02/08/asp.net-mvc-recursive-treeview-helper.aspx)

Возможно, мне следует просто объединить некоторые фрагменты найденных примеров, но, поскольку я новичок в технологии ASP.NET MVC, я не уверен в лучшем шаблоне в таком случае.

Будем благодарны за любую помощь (предложения, шаблоны, указать хороший пример и т. Д.).

Спасибо
diork

2 ответа

Вы можете использовать jqGrid для отображения дерева. Он также имеет поддержку операций CRUD. Не то чтобы это было чрезвычайно просто в использовании.

Я бы, вероятно, использовал существующее дерево HtmlHelper, если вам не нужна поддержка модного интерфейса.

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

Получение данных будет более сложной частью из-за отсутствия частичного рендеринга MVC или суб-контроллеров.

Вы можете использовать такую ​​технику: Рендеринг частичного просмотра с использованием jQuery в ASP.NET MVC

Для получения дополнительной информации ознакомьтесь с MvcContrib и его функциями субконтроллера, а пока вы на нем, посмотрите: http://devlicio.us/blogs/derik_whittaker/archive/2008/11/24/renderpartial-vs-renderaction.aspx для получения дополнительной информации, которая поможет вам выбрать между RenderAction и RenderPartial.

IMO Я бы избегал рендеринга через мастер-страницу любой ценой. Вам нужно будет войти в masterviewmodels, и если вы хотите иметь строго типизированные мастер-страницы, в ваше приложение MVC нужно добавить много инвазивного кода.

Другие вопросы по тегам