在Umbraco后端显示MVC视图

时间:2017-06-19 13:00:21

标签: c# asp.net-mvc asp.net-mvc-5 umbraco7

我在这里找到了这篇文章: http://jondjones.com/learn-umbraco-cms/umbraco-developers-guide/customising-umbraco-ui/how-to-display-an-mvc-view-in-the-umbraco-backend

它涵盖了我想要做的事情(在一节中显示umbraco后端的mvc视图),但是我似乎无法让它工作,文章作者是无法接受的。

我希望有人可能知道这个过程,并能够为我详细介绍。我正在努力的特定部分是作者没有描述任何事情发生的地方,使用他的代码有什么,以及如果你还没有在umbraco项目中有一个如何处理routeconfig。除此之外,与示例中的作者命名约定不一致,导致进一步的混淆。

如果有人之前已经这样做了,请你详细了解如何使用MVC在umbraco后端的部分中显示视图。

1 个答案:

答案 0 :(得分:0)

所以我仍在努力改进项目中的工具, 但是我为umbraco创建的这个扩展包含了你能够创建一个使用MVC来显示页面的新自定义部分所需的一切。

https://github.com/Wolfkhan66/Escc.Umbraco.EditorTools

如果可能的话,我会尝试编写一个简短的教程,介绍创建自定义MVC umbraco部分的绝对基础知识。

现在,如果您看一下这个项目,那么创建新部分所需的基础知识就是以下类和文件。

App_Start -> RouteConfig.cs
lang -> en-US.xml, en.xml
EditorTools -> EditorToolsSection.cs, EditorToolsTree.cs, StartUpHandler.cs 

*** Section.cs类文件允许您创建新部分的实例。 *** Tree.cs类文件允许您添加在任何umbraco部分上看到的导航树节点。 StartUpHandler.cs是注册您的RouteConfig以允许MVC工作。 lang文件允许您仅更改为您的部分显示的名称。如果没有它,您的部分将出现[示例]而不是示例。

在创建此项目时我注意到的一些事情,在树中创建与umbraco部分同名的控制器和节点有时会导致冲突。例如在树类中有一个名为ContentNode的节点会破坏而不起作用。所以在我的树中我将它命名为ContentToolsNode。

要保留扩展程序,最好不要使用扩展程序文件夹。但是,默认情况下,您的操作结果将查看视图文件夹的项目的根级别。因此,您必须在返回的操作结果中提供一个字符串,以将它们指向您的扩展文件夹中的正确视图。 e.g。

return View("~/App_Plugins/EditorTools/Views/Content/Index.cshtml", model);

如果您导航到新部分并找不到导航树。尝试删除Config文件夹中找到的trees.config文件中的自定义部分键并重建项目。下次导航到自定义部分时,它应重新生成一个新密钥并显示导航树。

由于该项目正在进行中,我仍在进行改进,如果您克隆它,您可能会发现它丢失了一些umbraco文件(主要是配置文件。只需卸载umbracocms,umbraco.modelsbuilder和umbracocms.core包并删除项目中任何缺失的文件。然后您应该能够重新安装umbracocms包。我试图在自述文件中记录安装进度。

我希望这可以帮助一些人,Happy Coding!