Вопрос

Я выполнил шаги из 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 сорт.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top