Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Nopcommerce重写路由,通过CustomView引擎和Routeprovider否决核心目录控制器_C#_Asp.net Mvc_Nopcommerce_Route Provider - Fatal编程技术网

C# Nopcommerce重写路由,通过CustomView引擎和Routeprovider否决核心目录控制器

C# Nopcommerce重写路由,通过CustomView引擎和Routeprovider否决核心目录控制器,c#,asp.net-mvc,nopcommerce,route-provider,C#,Asp.net Mvc,Nopcommerce,Route Provider,在前面的问题中,我问了如何从Nop核心控制器CatalogController继承代码。有关问题的帖子,请参见 现在我继承了这个核心控制器的代码,但是现在我想让nopcommerce使用我的CatalogController而不是核心控制器。为此,我使用了CustomViewEnige和路由提供程序 添加新路线后: routes.MapLocalizedRoute("Nop.Web.Controllers.CatalogController", "{categ

在前面的问题中,我问了如何从Nop核心控制器CatalogController继承代码。有关问题的帖子,请参见

现在我继承了这个核心控制器的代码,但是现在我想让nopcommerce使用我的CatalogController而不是核心控制器。为此,我使用了CustomViewEnige和路由提供程序

添加新路线后:

routes.MapLocalizedRoute("Nop.Web.Controllers.CatalogController",
                  "{category}",
                  new { controller = "Catalog", action = "Category" },
                  new[] { "Nop.Plugin.Widgets.TryingNewProjectController.Controllers" });
我已经更改了我的路由提供程序代码,因此Nopcommerce现在可以看到我想要的路由,但现在我仍然得到错误:

控制器类型的当前操作请求“类别” “CatalogController”在以下操作方法之间不明确: 类型上的System.Web.Mvc.ActionResult Category() Nop.Plugin.Widgets.TryingNewProjectController.Controllers.CatalogController 类型上的System.Web.Mvc.ActionResult Category() Nop.Web.Controllers.CatalogController System.Web.Mvc.ActionResult 目录(Int32,Nop.Web.Models.Catalog.CatalogPagingFilteringModel) 键入Nop.Web.Controllers.CatalogController


我不知道我做错了什么…

我自己也能弄明白:)但对于其他刚起步的nopcommerce开发人员/正在起步的ASP.Net开发人员,以下是答案:

当你为一个控制器/动作创建一个新的路由时,你必须在你的新插件中为这个控制器/动作指定一个唯一的名称。这听起来很简单,但我花了很长时间才弄明白

这是我的旧代码,不起作用

routes.MapLocalizedRoute("Nop.Web.Controllers.CatalogController",
                  "{category}",
                  new { controller = "Catalog", action = "Category" },
                  new[] { "Nop.Plugin.Widgets.TryingNewProjectController.Controllers" });
此代码适用于:

routes.MapRoute("Nop.Web.Controllers.CatalogController.Category",
                "{category}",
               new { controller = "TryingNewProject", action = "Category" },
               new[] { "Nop.Plugin.Widgets.TryingNewProjectController.Controllers.CatalogController" });