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 нужно добавить много инвазивного кода.