MVC和Umbraco集成
-
06-07-2019 - |
题
我已按照 http://的步骤进行操作memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html 并在Umbraco中集成了MVC并取得了成功,但我仍然遇到一个对我来说至关重要的问题。
有没有办法在MVC视图中继承Umbraco定义的模板?
据我所知,问题是Umbraco模板仅在运行时变为HTML,并且无法识别 @nodeName
的doctype属性和“Object null reference”。由于此原因引发异常。
谢谢!
解决方案
这个问题非常陈旧,与当前版本的Umbraco无关。
以防任何人仍然不知道 - 自2013年以来所有版本的Umbraco(6,7和现在8)都支持MVC
其他提示
看了一下博客文章后,似乎实际上并没有与Umbraco整合,而是和Umbraco一起工作。
因为它实际上是它自己的HttpHandler。这意味着它绕过了Umbraco Httphandler以及与模板和CMS本身相关的一大堆Umbraco功能。
在没有修改核心应用程序(版本4+)的情况下,(可能)无法使用MVC来使用Umbraco模板。但是,这并不意味着您不能将Umbraco与Umbraco一起使用MVC作为MVC应用程序的内容存储库。
您可以轻松创建MVC控制器,从Umbraco中提取数据并使其可用于您的视图。例如,您可以使用Umbraco Linq2Umbraco。
如果您提供有关您所获得的确切错误以及您正在尝试实现的更多详细信息,那么解决方案可能就是您如何构建应用程序,而不是试图强行使用Umbraco 4+来执行某些操作。将在Umbraco 5中出生(计划于今年某个时候发布)。 5的源代码在 Codeplex 上,可能是一个好看的地方,看看Umbraco核心如何团队正在接近这一点。
这里有一个古老的讨论: http:// forum .umbraco.org / yaf_postst5106_Using-ASPNET-MVC与 - 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 /论坛/开发者/延伸-一把umbraco / 6837-一把umbraco-网站 - 和 - MVC-网站功能于一身的
您可以考虑编写一些 HtmlHelper扩展方法使用 umbraco .NodeFactory.Node 类,用于获取您尝试在视图中显示的内容。编写模拟(或根据您的需要简化) umbraco.presentation.templateControls.Item
和 umbraco.presentation.templateControls.Macro
的方法可能就足够了。
修改强>
我走了这条道路取得了一些成功。我还看了一下MVC源代码以了解具体方法
部分视图被添加到底层Web窗体控件集合中。我最后编写了一个继承自 umbraco.presentation.templateControls.Macro
类的类,它看起来很像 System.Web.Mvc.ViewUserControl
类。