1

我希望大量自定义我的应用程序处理路由的方式。本质上,我想实现这样的过程:

  • 用户请求 URL:/custom-url-part-1/custom-url-part-2/gallery/1/date
  • 应用程序在 Routes 的数据库表中查找匹配项
  • 应用程序返回匹配的路由记录,包括:
    • 路由网址
    • 控制器
    • 行动
    • 参数
    • 默认值
  • 应用程序查看 RouteUrl 并解析任何可选参数 {pagenum}、{orderby}
  • 应用程序检查这些是否已在请求的 Url 中提供
  • 如果没有提供它们,它会检查 Route 记录的“默认值”以获取它们
    • 然后这些在 RouteData 默认值中传递
  • 参数在 RouteData 默认值中传递
  • 返回路由数据

这样做的核心原因是我想要一个动态的路由表,由 CMS 修改,以便针对路由存储某些数据。

我的问题是:

如何复制 MVC 将 Uri 匹配到 Route 的方式?我基本上需要查看数据库表并根据 Uri 带回适当的 Route。与标准 ASP.NET MVC 功能通过 RouteCollections 进行查看并使用正确路由的方式非常相似。

我意识到我实际上是在重写 MVC 内置的一些功能,并用数据库替换 RoutesCollection ......但我需要这样做以实现两件事:

  1. 路线完全是动态的、流动的并由 CMS 控制。
  2. 针对那些无法从 Uri 本身推断出的路由存储的数据(例如,我可能希望在用户点击特定路由时发送一个 PageId,但我不希望 Uri 中的那个 PageId)。
4

0 回答 0