从管理员页面重定向到插件页面时,Nopcommerce错误 - “找不到页面”

时间:2014-06-17 05:29:05

标签: c# asp.net-mvc nopcommerce

我正在使用nopCommerce。我正在开发一个插件项目。

当我尝试将管理页面重定向到插件页面时, 它给出了错误,如

  

“PAGE NOT FOUND”

我的插件页面网址是

localhost:2276/Admin/Category/List

但它适用于此网址

localhost:2276/Plugin/Category/List

RouteProvider.cs

 public partial class RouteProvider : IRouteProvider
    {
        public void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute("Nop.Plugin.Category.ShopByCategory.Views.Category.List",
                 "Admin/Category/List",
                new { controller = "Category", action = "List" },
                new[] { "Nop.Plugin.Category.ShopByCategory.Controllers" });
        }
        public int Priority
        {
            get { return 0; }
        }
    }

我需要通过此网址localhost:2276/Admin/Category/List实现此目的。 有没有不同的方法来实现这个?

4 个答案:

答案 0 :(得分:1)

你可以尝试

public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", area = "Admin", id = "" },
            new[] { "Nop.Admin.Controllers" }
        );
    }

答案 1 :(得分:0)

之前我遇到过这个问题而且我知道其他人也有这个问题 - 问题在于包括管理员在路线中。当我删除管理员它工作正常。不利的一面是,您的插件管理页面不会在网址中包含管理员,但它们仍然可以正常工作。

例如,尝试这样的事情:

public partial class RouteProvider : IRouteProvider
    {
        public void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute("Nop.Plugin.Category.ShopByCategory.Views.Category.List",
                 "Category/List",
                new { controller = "Category", action = "List" },
                new[] { "Nop.Plugin.Category.ShopByCategory.Controllers" });
        }
        public int Priority
        {
            get { return 0; }
        }
    }

答案 2 :(得分:0)

如果我们想在URL中使用管理员令牌,我们需要添加一个数据令牌来路由 以下是如何在RouteProvider类的RegisterRoutes方法中执行此操作的代码示例。

var route = routes.MapRoute(RouteName,
                  "admin/Plugins/PluginName/ControllerName/ActionName",
                  new { controller = "ControllerName", action = "ActionName" },
                  new[] { TheNamespaceOfControllerClass }
             );

route.DataTokens.Add("area", "admin");

答案 3 :(得分:-1)

构建Nop.Admin项目。它生成Nop.Admin.dll文件。