MVC和Umbraco集成


70

我已经遵循了http://memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html中的步骤,并将MVC成功集成到Umbraco中,但是我仍然遇到一个对我来说至关重要的问题。

有什么方法可以在MVC视图中继承Umbraco定义的模板吗?据我了解,问题在于Umbraco模板仅在运行时变为HTML,并且doctype属性(如@nodeName)无法识别,因此引发了“对象空引用”异常。

谢谢!


很好奇你过得怎么样,这个工作顺利吗
霜冻的2010年

另一位好奇的人-您得到这个排序了吗?

7
我想,一把umbraco的下一个版本将使用ASP.Net MVC our.umbraco.org/wiki/user-groups/australia-and-new-zealand/...
瞄准凯

6
他们说下一个Umbraco将基于MVC。我会等。
turtlepick 2010年

1
一年后在这里添加我的一点评论:Umbraco 4.10+,尤其是Umbraco 6+现在支持MVC。
Funka 2013年

Answers:


7

这个问题确实很老,与当前的Umbraco版本无关。

以防万一仍然有人不知道-自2013年以来的所有Umbraco版本(6、7和现在的8)都支持MVC


5

在看过博客帖子后,似乎它实际上并未与Umbraco集成在一起,而是与Umbraco一起工作。

实际上,它实际上是它自己的HttpHandler。这意味着它将绕过Umbraco Httphandler以及与模板和CMS本身有关的一整套Umbraco功能。

如果不修改核心应用程序(版本4 +),(可能)无法使MVC利用Umbraco模板。但是,这并不意味着您不能将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

与其尝试使用Umbraco控件,不如考虑编写一些HtmlHelper扩展方法,这些扩展方法使用umbraco.NodeFactory.Node类来获取您尝试在视图中显示的内容。模仿(或根据您的需求简化)umbraco.presentation.templateControls.Itemumbraco.presentation.templateControls.Macro足以满足您需求的编写方法。

编辑

我走了这条路,并取得了一些成功。我还查看了MVC源,以了解如何将部分视图添加到基础Web窗体控件集合。我最终写了一个继承自umbraco.presentation.templateControls.Macro该类的类,该类看起来很像System.Web.Mvc.ViewUserControl该类。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.