在路由定义中间使用贪婪路由参数

2024-02-21

我正在尝试创建遵循树导航系统结构的路线,即我想将树中的整个路径包含在我的路线中。所以如果我有一棵像这样的树

  • Computers
    • Software
      • 发展
      • Graphics
    • Hardware
      • CPU
      • 显卡

然后我希望能够有这样的路线

  • site.com/catalog/computers/software/graphics

这本身并不难,可以通过如下所示的路线来捕获

  • 目录/{*类别}

但是我希望能够在该 URL 的末尾添加产品信息,如下所示

  • site.com/catalog/computers/software/graphics/title=Photoshop

这意味着我需要像下面的示例那样定义的路由

  • site.com/{*categories}/title={名称}
  • site.com/{*类别}

然而,这些路由中的第一个是无效的,因为在贪婪的参数(例如 {*categories})之后不会出现任何其他内容,所以我有点卡住了。我一直在考虑实现正则表达式路由,或者也许使用 IRouteContraint 来解决这个问题,但我想不出一个合适的解决方案,可以让我也使用Html.ActionLink(...)生成同时填写 {*categories} 和 {name} 的出站 URL 的方法

任何意见是极大的赞赏!

你们中的一些人可能昨天看到了我提出的类似问题,但它已被我删除,因为我已经对此进行了更多思考,并且旧问题包含对我的问题的不完整描述

更新2008/11/26我将解决方案发布于http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html http://thecodejunkie.blogspot.com/2008/11/supporting-complex-route-patterns-with.html


URL 中任意位置的贪婪分段

我写过GreedyRoute支持 URL 中任意位置的贪婪(捕获所有)分段的类。您已经有一段时间不需要它了,但将来它可能对其他人有用。

它支持以下任何模式:

  • {segment}/{segment}/{*greedy}- 默认情况下已经支持此功能Route class
  • {segment}/{*greedy}/{segment} - 中间贪心
  • {*greedy}/{segment}/{segment} - 一开始就贪心

您可以阅读所有详细信息在我的博客文章上 http://erraticdev.blogspot.com/2011/01/custom-aspnet-mvc-route-class-with.html并获取代码。

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

在路由定义中间使用贪婪路由参数 的相关文章

  • 集成引导模板的 ASP .Net MVC Web 应用程序

    我知道对于这个问题我可能会得到太多的反对票 但我只是找不到解决我的问题的教程 我在 Visual Studio 2013 中创建了一个 ASP Net MVC 项目 新项目 gt ASP NET Web 应用程序 gt MVC 我正在尝试更
  • 如何进入system.web.mvc

    有谁知道我如何进入system web mvc 我收到隐藏在 System Web Mvc DefaultModelBinder CreateModel 方法中的错误 无法创建抽象类 并且我无法判断代码的哪一部分导致了问题 有人建议我可以从
  • Codeigniter子域路由

    我正在尝试在 CodeIgniter 框架上运行的网站上设置博客脚本 我想在不对现有网站代码进行任何重大代码更改的情况下执行此操作 我认为创建一个指向另一个控制器的子域将是执行此操作的最干净的方法 我设置新设备所采取的步骤Blog涉及控制器
  • 我可以删除单个子实体而不加载整个集合吗?

    我有 2 个课程 如下所示 它们可以拥有非常大的集合 一个网站可能有 2 000 多个网站页面 反之亦然 class WebsitePage public int ID get set public string Title get set
  • 使用asp.net mvc计算相对日期

    在 C 中使用 ASP NET MVC 显示相对日期 例如 20 分钟前 的最佳库是什么 当简单的扩展方法可以做到这一点时 您就不需要库了 这是我使用过的扩展方法 public static string TimeAgo this Date
  • [Bind(Exclude = "AlbumId")] 注解在数据验证中的作用是什么?脚手架是什么意思?

    我按照这个教程 http www asp net mvc tutorials mvc music store mvc music store part 6 http www asp net mvc tutorials mvc music s
  • c# .NET MVC 4 - 如何创建使用 Ninject 服务的 Quartz 作业?

    我正在使用 NET MVC 4 所有服务都是使用 Ninject 注入的 我正在尝试使用 Quartz 来安排工作 目前 职位登记在Global asax如下 Global asax protected void Application S
  • 是什么导致“线程被中止”异常随机发生并向浏览器显示 HTTP 标头和部分 HTML?

    发生的情况偶尔是随机的 而不是像您期望的那样将 HTML 返回到浏览器 它看起来有点像这样 线程正在中止 HTTP 1 1 200 OK 标题的其余部分 如 HTML 的 1 10 就是这样 他们实际上在浏览器窗口中收到了一堆文本 它不会一
  • ASP.NET MVC HandleError 视图未找到

    我正在尝试使用 HandleError 属性在 ASP NET MVC3 中实现异常处理 我正在使用的代码如下所示 HandleError Order 1 ExceptionType typeof SocketsOfflineExcepti
  • 基于角色在同一路径上延迟加载模块

    我正在尝试根据我的角色加载 Angular 模块 当我登录时 我用 Angular Guard 尝试过 但这不起作用 当它失败时 它不会转到下一条路线 const routes Routes path loadChildren gt Aut
  • 如何将敏感数据从视图传递到控制器

    为了构造一个包含大量信息的实体 我需要执行一系列表单提交 每次我从控制器返回视图时 我都需要传递一些有关尚未建立的实体的 id 现在 我将这些信息注入隐藏字段 并在发回服务器时继续构建实体 这样的场景持续了好几次 我对这种传递敏感信息的方式
  • 我应该为每个 Web 请求使用静态缓存的 ResourceManager 还是一个新实例?有关系吗?

    创建新的 NET 对性能 或其他 有何影响 如果有 ResourceManager根据每个请求new ResourceManger myResourceType FullName myResourceType Assembly 与在 Des
  • 如何在 MVC5 中创建两种类型的用户?

    我正在创建 MVC5 应用程序 并且已经在使用 ASP NET Identity 来创建用户 因此 我已经有了 AspNetUsers 表 每当用户注册时 我都会在那里获得一个条目 我还有一个管理员角色 我可以手动指定哪个注册用户是管理员
  • Svelte 路线给我 404

    我在 Svelte 中为我的应用程序创建了一个简单的路由器 如果我从导航栏访问链接 它就可以工作 如果我重新加载页面 它会给我 404 为什么
  • 如何使用Python中的or-tools解决累积旅行商问题?

    累积旅行商问题 CTSP 的目标是最小化到达客户的时间总和 而不是总旅行时间 这与最小化总旅行时间不同 例如 如果一个人拥有无限的车辆 车辆与位置数量相同 并且目标是最大限度地减少到达位置的总时间 则可以为每个位置发送一辆车 因为这是满足所
  • Html.Display对于十进制格式?

    例如 我有一个十进制值 59625879 00 我想这样显示这个值 59 625 879 or 59625 879 我怎样才能做到这一点 Html DisplayFor x gt x TAll String Format Thanks 装饰
  • EF4 和 SQL Server 2000

    我使用 EF4 和 SQL Server 2005 开发了我的网站 但当转移到临时站点时 发现他们使用 SQL Server 2000 现在我收到此错误 我认为该错误与 SQL Server 2000 有关 Incorrect syntax
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • MVC Html.Partial 或 Html.Action

    我是 ASP NET MVC 新手 所以请耐心等待 我需要构建一个在多个视图中重复的菜单 什么可以更好地服务于目的Html Action http msdn microsoft com en us library ee703423 aspx

随机推荐