我正在使用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
实现此目的。
有没有不同的方法来实现这个?
答案 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文件。