我在向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();
}
}
}
在Regions / Manager / Views / Products /
中有ProductList
和ProductEdit
的视图文件
我的网络配置包含以下我认为需要的行
<add key="manager_namespaces" value="MyApp.Areas.Manager.Controllers" />
当我点击管理器中的产品链接时,我得到了
无法找到资源。 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。 请求的URL:/ MyApp / manager / products / productlist
页面/ MyApp / manager /页面显示默认配置正常。
我确信我错过了某些东西,或者在某个地方做了一些不正确的事我不知道它在哪里。
答案 0 :(得分:1)
我已尝试重现您的问题,但它与我的项目中的productcontroller完美配合。我已将我的测试项目压缩并上传到我的Dropbox,以便您可以下载并与项目进行比较:
修改强> 删除了作者下载文件的下载链接
请在下载zip文件时通知我,以便删除。
此致
哈坎