gpt4 book ai didi

c# - 通过覆盖插件 nopCommerce 3.3 中的 GenericPathRoute.cs 更改 URL 路由

转载 作者:行者123 更新时间:2023-11-30 17:48:01 27 4
gpt4 key购买 nike

我正在尝试创建一个插件来覆盖 TopicsDetails.cshtml 页面。我添加了这样的路线:

      routes.MapRoute("Nop.Plugin.Other.CustomTopic.ViewCustomTopic", "{SeName}",
new { controller = "CustomTopic", action = "TopicDetails", SeName = UrlParameter.Optional },
new[] { "Nop.Plugin.Other.CustomTopic.Controllers" });

这是将所有 {SeName} 获取到我的 CustomTopicController 中。甚至是产品 SeName。

如果我添加这个而不是旧的:

       routes.MapRoute("Nop.Plugin.Other.CustomTopic.ViewCustomTopic",
new { controller = "CustomTopic", action = "TopicDetails" },
new[] { "Nop.Plugin.Other.CustomTopic.Controllers" });

我收到一个错误,因为 TopicDetails(int itemId) 操作接收到一个整数,但我们知道 GenericPathRoutes.cs 提供了该整数。

我如何覆盖 GenericPathRoutes.cs 的规则来执行此操作,以便只有主题 SeName 会命中我的 Controller ,或者是否有其他方法可以完成这种工作,或者甚至可以这样做?

最佳答案

最近我写了一篇文章,展示了如何覆盖本地化路由,并以 TopicDetails View 为例。有文章here .简而言之,您的路线提供者应如下所示;

public class RouteProvider : IRouteProvider
{
private const string NAMESPACES = "Nop.Plugin.Misc.Custom.Controllers";
private const string CONTROLLER = "MiscCustom";

public void RegisterRoutes(RouteCollection routes)
{
//Public Override
routes.MapGenericPathRoute("Plugin.Misc.Custom.GenericUrl",
"{generic_se_name}",
new { controller = "Common", action = "GenericUrl" },
new[] { NAMESPACES });

}

public int Priority
{
get { return Int32.Max; }
}
}

关于c# - 通过覆盖插件 nopCommerce 3.3 中的 GenericPathRoute.cs 更改 URL 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23806791/

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