orchard cms路由问题

2024-06-19

我创建了一些自定义内容类型,其中包括路线部分,以便我的内容管理员可以编辑项目的别名。我没有运气配置一条路线,使我自己的控制器能够为这些项目的请求提供服务。

核心 Routable 模块中到 ItemController 的路径的路由优先级为 10。我尝试制作一条利用 IRouteConstraint 的路由,类似于 Blog 模块实现我想要做的事情的方式,优先级较低,但仍然没有运气。

如果我使 URL 以 / 结尾,则我的自定义路由将被激活,因为它与我的内容项的路径不匹配。这不是一个理想的解决方案。我无法理解为什么它不会在属于可路由模块的路线之前发现我的自定义路线。

任何帮助将不胜感激,非常感谢。

UPDATE:
这是我的 IRouteProvider 实现中的 GetRoutes 方法:

    public IEnumerable<RouteDescriptor> GetRoutes()
    {
        return new[] {
            new RouteDescriptor
            {
                Priority = 0,
                Route = new Route(
                    "Admin/Jugganort/{controller}/{action}/{id}",
                    new RouteValueDictionary {
                                                {"area", "Jugganort"},
                                                {"controller", "Area"},
                                                {"action", "List"}
                                            },
                    new RouteValueDictionary(),
                    new RouteValueDictionary {
                                                {"area", "Jugganort"}
                                            },
                    new MvcRouteHandler())
            },
            new RouteDescriptor
            {
                Priority = 9,
                Route = new Route(
                    "{location}/{merchant}/{promotion}",
                    new RouteValueDictionary {
                                                {"area", "Jugganort"},
                                                {"controller", "Home"},
                                                {"action", "Index"},
                                                {"merchant", UrlParameter.Optional},
                                                {"promotion", UrlParameter.Optional}
                                            },
                    new RouteValueDictionary { 
                        { "location", _routeConstraint }
                    },
                    new RouteValueDictionary {
                                                {"area", "Jugganort"}
                                            },
                    new MvcRouteHandler())
            }
        }; 
    }  

_routeConstraint 是 IRouteConstraint 的一个简单实现,它只是查找路线中位置的硬编码值“newcastle”。

我对RoutePart的理解不正确吗?这些项目是否总是必须从可路由模块的 ItemController 提供?我是用户替代渲染自定义形状的唯一选择吗?

果园论坛将是我的下一个拜访点。再次感谢您提供的任何帮助。


当然,您也可以通过自己的控制器提供这些项目。唯一需要的是到达您的控制器的路线。然后,您几乎可以返回任何您想要的东西:)

您的 URL 似乎正在与其他一些路由匹配。如果您想覆盖默认路由并确保首先比较您的路由,您应该指定更高的优先级(例如 11)。 Orchard.Core.Routable.Routes 中的捕获所有路由的优先级为 10,因此甚至会捕获与您的路由匹配的 URL。

您没有在第一个路由中提供 id 的默认值 - 这也可能会造成问题。如果您没有在 URL 中显式指定 id,则不会匹配。

Btw, is Area第一个路由中默认控制器的正确名称,或者只是一个拼写错误?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

orchard cms路由问题 的相关文章

随机推荐

  • 在声明使对象和类未定义之前导出它们

    我尝试重复以下示例Mozilla 黑客 https hacks mozilla org 2015 08 es6 in depth modules 导出列表字幕 export js export detectCats Kittydar fun
  • 将 UserControl 转换为特定类型的用户控件

    有没有办法将用户控件转换为特定的用户控件 以便我可以访问它的公共属性 基本上 我正在遍历占位符的控件集合 并尝试访问用户控件的公共属性 foreach UserControl uc in plhMediaBuys Controls uc P
  • 如何根据条件表达式从 pandas DataFrame 中删除行[重复]

    这个问题在这里已经有答案了 我有一个 pandas DataFrame 我想从中删除特定列中字符串长度大于 2 的行 我希望能够做到这一点 每这个答案 https stackoverflow com questions 11881165 s
  • 如何使用 c++11 CAS 实现 ABA 计数器?

    我正在基于此实现一个无锁队列算法 http www cs rochester edu research synchronization pseudocode queues html 它使用计数器来解决 ABA 问题 但我不知道如何用c 11
  • 如何从我的班级访问活动 UI?

    我有一个活动创建我的类的对象实例 file MyActivity java public class MyActivity extends Activity TextView myView TextView findViewById R i
  • Sinon 存根抛出“TypeError:无法重新定义属性”

    我正在使用 NPM 包Jose https github com panva jose 版本 v1 28 0 在我的一个 NodeJS 应用程序中 最近我的更新机器人尝试将其更新到下一个主要版本 2 0 2 可悲的是我的单元测试Sinon
  • 非泛型类型 Type 不需要类型参数

    我正在创建一个简单的测试类型提供程序 我想提供一个字符串 并返回一个类型名称等于所提供的字符串的类型 但结果不行 说BasicProvider是非泛型类型 Error 非泛型类型 SimpleStringProvider BasicProv
  • 服务器作为 WebRTC 数据通道对等点

    目前是否有解决方案可以让您的服务器充当 WebRTC 连接的对等端 我对 WebRTC 感兴趣的原因不是它的点对点部分 而是因为它使您能够使用 UDP 您可以让玩家参与像 雷神之锤 这样的快节奏游戏 而无需任何插件 看来本质上是同一个问题之
  • 从 Rails 3.1.3 升级到 Rails 3.2.1。资产错误

    我尝试将应用程序从 Rails 3 1 3 升级到 Rails 3 2 1 但资产出现问题 我有这样的错误 ActionController RoutingError No route matches GET assets logos op
  • JQuery 事件处理程序未触发

    请看我的代码 Html table tr td valign top style padding top 10px Body br br a href expand a td td td tr table
  • Pyinstaller:如何包含 importlib_resources 使用的包中的资源

    我有以下项目结构 package1 init py some py package2 init py some py static data init py file1 txt file2 txt my script py my scrip
  • 占据花车的地板

    我发现了两种在 Python 中占据发言权的方法 3 1415 1 and import math math floor 3 1415 第一种方法的问题是它返回一个浮点数 即3 0 第二种方法感觉很笨拙而且太长 在 Python 中是否有替
  • WCF 5.0 和 oData 3.0 API 不适用于 Azure 表存储

    在我迁移 WCF5 0 应用程序以与 azure 集成后 我无法将 oData 3 api 与 azure 表存储一起使用 我收到这个错误 定义了类型 System Data Services Client DataServiceRespo
  • JavaScript WebSocket.send 方法会阻塞吗?

    如果我要发送大量Blob or ArrayBuffer通过 JavaScriptWebSocket通过其send方法 是否send方法调用会阻塞 直到发送数据为止 还是会复制数据以异步发送 以便调用可以立即返回 一个相关的 未回答的 问题是
  • Qt 相当于 .NET 数据绑定吗?

    Qt 中是否有相当于 NET 数据绑定的功能 我想使用引用数据库中特定实体的 QString 填充一些组合框和其他小部件 但是 如果我可以将数据绑定到这些字符串 而不是基于新的组合框选择再次查询数据库 或者基于构建我自己的将使用 QStri
  • aiohttp 线程缓慢

    我复制了代码如何在线程中运行 aiohttp 服务器 https stackoverflow com questions 51610074 how to run an aiohttp server in a thread 它运行良好 所以我
  • Haskell 中的多态函数作为参数

    我有一个带有两个构造函数的 ADT 一个包裹着一个Double和一个包裹着Integer 我想创建一个函数 它采用一元函数Numtypeclass 并返回一个函数 该函数将该一元函数应用于我的 ADT 的内容 我试过这个 data X Y
  • 删除克隆元素上的淘汰赛 js 绑定

    我正在使用 knockout js 模板绑定功能将项目集合渲染到元素
  • 使用 DFT 的一维热方程产生不正确的结果 (FFTW)

    我正在尝试使用复数到复数 IDFT 求解一维热方程 问题在于单个时间步后的输出似乎不正确 我在下面提供了一个简单的示例来说明该问题 I initialize the temperature state as follows 频域中的初始模式
  • orchard cms路由问题

    我创建了一些自定义内容类型 其中包括路线部分 以便我的内容管理员可以编辑项目的别名 我没有运气配置一条路线 使我自己的控制器能够为这些项目的请求提供服务 核心 Routable 模块中到 ItemController 的路径的路由优先级为