Интеграция 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 ответа:
этот вопрос действительно старый и не имеет отношения к текущим версиям 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
класса.