Интеграция MVC и Umbraco


я следовал шагам от http://memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html и интегрированный MVC в Umbraco с успехом, но у меня все еще есть проблема, которая является критической для меня.

есть ли способ наследовать определенные шаблоны Umbraco в представлении MVC? Насколько я понимаю, проблема в том, что шаблоны Umbraco становятся HTML только во время выполнения и свойства doctype, как @nodeName, не распознаются и исключение "Object null reference бросили из-за этого.

спасибо!

3 70

3 ответа:

этот вопрос действительно старый и не имеет отношения к текущим версиям Umbraco.

на всякий случай, если кто - то еще не знает -Umbraco 6 и 7 теперь поддерживают MVC.

взглянув на сообщение в блоге, кажется, что это на самом деле не интегрировано с Umbraco, но работает вместе с Umbraco.

в том, что это фактически его собственный HttpHandler. Это означает, что он обходит Umbraco Httphandler и целую кучу функций Umbraco, связанных с шаблонами и самой CMS.

получение MVC для использования шаблонов Umbraco (вероятно) невозможно без изменений в основном приложении (в версии 4+). Однако, что это не означает, что вы не можете использовать MVC вместе с Umbraco с Umbraco, действующим как репозиторий контента для приложения MVC.

вы можете легко создать контроллеры MVC, которые извлекли данные из Umbraco и сделали их доступными для ваших представлений. Например, вы можете использовать Umbraco Linq2Umbraco для этого.

Если вы дадите более подробную информацию о точных ошибках, которые вы получаете, и именно то, что вы пытаетесь достичь, это может быть решение в том, как вы структурируете свое приложение, а не чем попытка грубой силы Umbraco 4+ сделать что-то, что будет родным в Umbraco 5 (который планируется выпустить в этом году). Исходный код для 5 находится на Codeplex и может быть хорошим местом, чтобы посмотреть и посмотреть, как основная команда Umbraco приближается к этому.

здесь есть старая дискуссия об этом:http://forum.umbraco.org/yaf_postst5106_Using-ASPNET-MVC-with-Umbraco.aspx

и совсем недавно здесь: http://our.umbraco.org/forum/getting-started/installing-umbraco/2668-Use-Umbraco-with-aspnet-MVC

дальнейшее обсуждение можно найти здесь: http://our.umbraco.org/forum/developers/extending-umbraco/17523-Umbraco-461-and-MVC-3

и даже больше здесь: http://our.umbraco.org/forum/developers/extending-umbraco/6837-Umbraco-Website-And-MVC-Website-In-ONE

вместо того, чтобы пытаться использовать элементы управления Umbraco, вы можете подумать о написании некоторых методы расширения HtmlHelper чтобы использовать umbraco.NodeFactory.Узел класс для получения содержимого, которое вы пытаетесь отобразить в своих представлениях. Методы написания, которые имитируют (или упрощают в зависимости от ваших потребностей) umbraco.presentation.templateControls.Item и umbraco.presentation.templateControls.Macro может быть достаточно для вас.

EDIT

Я пошел по этому пути с некоторым успехом. Я также взглянул на MVC источник, чтобы узнать, как в базовую коллекцию элементов управления веб-формами были добавлены частичные представления. Я закончил писать класс, который наследует от umbraco.presentation.templateControls.Macro класс, который очень похож на System.Web.Mvc.ViewUserControl класса.