在 Umbraco 后端显示 MVC 视图

Display an MVC view in the Umbraco Backend

我在这里找到了这篇文章: 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 项目中还没有路由配置的话如何处理。除此之外,示例中还与作者的命名约定不一致,导致进一步混淆。

如果有人以前这样做过,请详细说明如何使用 MVC 在 Umbraco 后端的一个部分中显示视图。

所以我还在研究和改进项目中的工具, 但是我为 umbraco 创建的这个扩展具有创建使用 MVC 显示页面的新自定义部分所需的一切。

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

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

现在,如果您查看此项目,创建新部分所需的基础知识是以下 classes 和文件。

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

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

我在创建这个项目时注意到的一些事情,在树中创建与 umbraco 部分同名的控制器和节点有时会导致冲突。例如在树 class 中有一个名为 ContentNode 的节点将会中断并且无法工作。所以在我的树中,我将其命名为 ContentToolsNode。

为了保留您的扩展,最好让您的视图不包含您的扩展文件夹。但是默认情况下,您的 actionresults 将在项目的根级别查看视图文件夹。因此,您必须在返回的操作结果中提供一个字符串,以将它们指向扩展文件夹中的正确视图。 例如

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

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

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

我希望这对一些人有帮助,编码愉快!