我正试图在Umbraco 7中创建一个代码包。当我将包导入到一个新的Umbraco项目时,一切都很好,只是新项目在路由表中找不到SurfaceController,除非我专门将文件导入到Visual Studio项目中(我的最终客户没有)。
我遵循了这里的说明:https://our.umbraco.org/documentation/reference/routing/surface-controllers
但是得到相同的"找不到路由"错误。
我在我的项目下创建了一个名为"Controls"的区域,并在那里添加了控制器。然后我用[PluginController("Controls")]
装饰了控制器。所以我有这样的结构:
--Root VS Project
--Area
--Controls
--Controllers
--MyController
我用我的代码这样称呼它:
@Html.Action("Index", "MyController", new { area = "Controls" }
当在VS中运行时,将这些文件作为项目的一部分包括在内,这种情况再次完全正常,但当我导出它并将包(以及所有其他相关文件)导入到一个新的Umbraco项目时,这种情况就中断了,因为我说它找不到路由。我的假设是,添加[PluginController("Controls")]属性意味着Umbraco项目在启动时会找到控制器并将其添加到路由中。事实并非如此吗?
问题是我没有将要导出的项目的DLL包含到要导入的项目的bin文件夹中。