Интеграция MVC и Umbraco
-
06-07-2019 - |
Вопрос
Я выполнил шаги из http://memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html и успешно интегрировал MVC в Umbraco, но у меня все еще есть критическая для меня проблема.
Есть ли способ наследовать шаблоны, определенные Umbraco, в представлении MVC?Насколько я понимаю, проблема в том, что шаблоны Umbraco становятся HTML только во время выполнения, а свойства doctype, как @nodeName
, не распознаются, и из-за этого выдается исключение «Нулевая ссылка на объект».
Спасибо!
Решение
Этот вопрос действительно старый и не относится к текущим версиям Umbraco. Р>
На всякий случай, кто еще не знает - Все версии Umbraco с 2013 года (6, 7 и теперь 8) поддерживают MVC
Другие советы
Посмотрев на сообщение в блоге, кажется, что на самом деле он не интегрирован с Umbraco, а работает вместе с Umbraco.
В этом смысле это фактически собственный HttpHandler.Это означает, что он обходит Umbraco Httphandler и целый ряд функций Umbraco, касающихся шаблонов и самой CMS.
Заставить MVC использовать шаблоны Umbraco (вероятно) невозможно без изменений основного приложения (в версии 4+).Однако это не означает, что вы не можете использовать MVC вместе с Umbraco, поскольку Umbraco выступает в качестве репозитория контента для приложения MVC.
Вы можете легко создать контроллеры MVC, которые будут получать данные из Umbraco и делать их доступными для ваших представлений.Например, вы можете использовать для этого Umbraco Linq2Umbraco.
Если вы предоставите более подробную информацию о точных ошибках, которые вы получаете, и о том, чего именно вы пытаетесь достичь, возможно, решение заключается в том, как вы структурируете свое приложение, а не в попытках грубо заставить Umbraco 4+ сделать что-то, что будет нативным. в Umbraco 5 (выпуск которого запланирован на конец этого года).Исходный код для 5 доступен Кодплекс и, возможно, это хорошее место, чтобы посмотреть, как основная команда 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.Node class для получения контента, который вы пытаетесь отобразить в своих представлениях.Написание методов, которые имитируют (или упрощают) в зависимости от ваших потребностей. umbraco.presentation.templateControls.Item
и umbraco.presentation.templateControls.Macro
может быть вам достаточно.
РЕДАКТИРОВАТЬ
Я пошел по этому пути с некоторым успехом.Я также посмотрел на источник MVC, чтобы выяснить, как частичные представления добавляются в базовую коллекцию элементов управления веб -форм.В итоге я написал класс, который наследуется от umbraco.presentation.templateControls.Macro
класс, который очень похож на System.Web.Mvc.ViewUserControl
сорт.