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

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

70 голосов
/ 28 ноября 2009

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

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

Спасибо!

Ответы [ 3 ]

6 голосов
/ 13 апреля 2017

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

На всякий случай, кто еще не знает - Все версии Umbraco с 2013 года (6, 7 и теперь 8) поддерживают MVC

5 голосов
/ 11 апреля 2011

Посмотрев на пост в блоге, кажется, что он на самом деле не интегрирован с 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

2 голосов
/ 13 апреля 2011

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

EDIT

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

...