gpt4 book ai didi

c# - Nopcommerce 重写路由以通过 CustomView Engine 和 Routeprovider 否决核心目录 Controller

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:07 26 4
gpt4 key购买 nike

在我之前的问题中,我询问了如何从 Nop 核心 Controller CatalogController 继承代码。请参阅问题 Nopcommerce inherit code from de nop core controller 的帖子

现在我已经继承了这个核心 Controller 的代码,但现在我想让 nopcommerce 使用我的 CatalogController insted 核心 Controller 。为此,我使用了 CustomViewEnige 和路由提供程序。

添加新路由后:

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

我已经更改了我的路线提供商代码,所以 Nopcommerce 现在可以看到我想要的路线,但现在我仍然收到错误消息:

The current request for action 'Category' on controller type 'CatalogController' is ambiguous between the following action methods: System.Web.Mvc.ActionResult Category() on type Nop.Plugin.Widgets.TryingNewProjectController.Controllers.CatalogController System.Web.Mvc.ActionResult Category() on type Nop.Web.Controllers.CatalogController System.Web.Mvc.ActionResult Category(Int32, Nop.Web.Models.Catalog.CatalogPagingFilteringModel) on type Nop.Web.Controllers.CatalogController

我不知道我做错了什么......

最佳答案

我能够自己弄明白 :) 但对于其他新手 nopcommerce 开发人员/新手 ASP.Net 开发人员,答案如下:

当您为 Controller /操作创建新路由时,您必须在新插件中为该 Controller /操作设置唯一的名称。这听起来很简单,但我花了很长时间才弄明白...

所以这是我的旧代码,它不起作用.....

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

关于c# - Nopcommerce 重写路由以通过 CustomView Engine 和 Routeprovider 否决核心目录 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31482456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com