2

我在向我的 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 页面对于默认配置显示正常。

我确定我错过了什么,或者在某个地方做错了什么,我只是不确定它在哪里。

4

1 回答 1

1

我已经尝试重现您的问题,但它在我的项目中与您的 productscontroller 完美配合。我已经压缩了我的测试项目并将其上传到我的保管箱,以便您可以下载并将其与您的项目进行比较:

编辑 在作者下载文件时删除了下载链接

请在您下载 zip 文件后通知我,以便我删除它。

问候

哈坎

于 2014-02-05T08:55:03.950 回答