我在向我的 Piranha CMS 添加自定义控制器时遇到问题。我已经建立了一个新站点并从模板安装,所有基本功能都运行良好。我已使用文档中的以下代码将菜单添加到管理器部分:
Manager.Menu.Add(new Manager.MenuGroup()
{
InternalId = "MEProducts",
Name = "Products"
});
Manager.Menu.Where(m => m.InternalId == "MEProducts").Single().Items =
new List<Manager.MenuItem>() {
new Manager.MenuItem() {
Name = "Products",
Action = "productlist",
Controller = "products",
Permission = "ADMIN",
SelectedActions = "productlist,productedit"
},
new Manager.MenuItem() {
Name = "Product groups",
Action = "productgrouplist",
Controller = "products",
Permission = "ADMIN",
SelectedActions = "productgrouplist,productgroupedit"
}
};
该菜单在管理器界面中显示正常,问题是当我单击菜单项时找不到控制器路径。
控制器的类位于 Areas/Manager/Controllers/ProductsController.cs 中,代码如下
namespace MyApp.Areas.Manager.Controllers
{
public class ProductsController : ManagerController
{
//
// GET: /Manager/Products/
public ActionResult Index()
{
return View();
}
public ActionResult ProductList()
{
return View();
}
public ActionResult ProductEdit(string id = "")
{
return View();
}
}
}
在 Areas/Manager/Views/Products/ 中ProductList
有视图文件ProductEdit
我的网络配置包含我认为我需要的以下行
<add key="manager_namespaces" value="MyApp.Areas.Manager.Controllers" />
当我单击管理器中的产品链接时,我得到
无法找到该资源。说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。请求的 URL:/MyApp/manager/products/productlist
/MyApp/manager/page 页面对于默认配置显示正常。
我确定我错过了什么,或者在某个地方做错了什么,我只是不确定它在哪里。