【问题标题】:Nopcommerce Error- "Page not Found" while redirecting from admin to plugin pagesNopcommerce 错误-从管理员重定向到插件页面时出现“找不到页面”
【发布时间】:2014-08-07 00:34:00
【问题描述】:

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

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

的错误

“页面未找到”

我的插件页面网址是

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; }
        }
    }

我需要通过这个 URL localhost:2276/Admin/Category/List 来实现它。 有不同的实现方式吗?

【问题讨论】:

    标签: c# asp.net-mvc nopcommerce


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      和我一起,只需要再次清理和重建解决方案

      【讨论】:

        【解决方案3】:

        你可以试试

        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" }
                );
            }
        

        【讨论】:

          【解决方案4】:

          如果我们想在 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");
          

          【讨论】:

            【解决方案5】:

            我之前遇到过这个问题,我知道其他人也遇到过 - 问题在于在路由中包含 Admin。当我删除管理员时,它工作正常。这样做的缺点是您的插件管理页面不包含 admin 在 url 中,但它们应该仍然可以正常工作。

            例如,尝试这样的事情:

            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; }
                    }
                }
            

            【讨论】:

              猜你喜欢
              • 2011-12-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-02-22
              • 1970-01-01
              • 2017-07-23
              相关资源
              最近更新 更多