Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC-创建自定义Uri到路由映射处理程序_Asp.net Mvc_Database_Asp.net Mvc Routing_Custom Routes - Fatal编程技术网

Asp.net mvc ASP.NET MVC-创建自定义Uri到路由映射处理程序

Asp.net mvc ASP.NET MVC-创建自定义Uri到路由映射处理程序,asp.net-mvc,database,asp.net-mvc-routing,custom-routes,Asp.net Mvc,Database,Asp.net Mvc Routing,Custom Routes,我希望对我的应用程序处理路由的方式进行大量定制。基本上,我想实现这样一个过程: 用户请求URL:/custom-URL-part-1/custom-URL-part-2/gallery/1/date 应用程序在路由数据库表中查找匹配项 应用程序返回匹配的路由记录,包括: 卢图尔 控制器 行动 参数 默认值 应用程序查看RouteUrl并解析任何可选参数{pagenum}、{orderby} 应用程序检查请求的Url中是否提供了这些内容 如果没有提供,它将检查路由记录的“默认值”以获取它们

我希望对我的应用程序处理路由的方式进行大量定制。基本上,我想实现这样一个过程:

  • 用户请求URL:/custom-URL-part-1/custom-URL-part-2/gallery/1/date
  • 应用程序在路由数据库表中查找匹配项
  • 应用程序返回匹配的路由记录,包括:
    • 卢图尔
    • 控制器
    • 行动
    • 参数
    • 默认值
  • 应用程序查看RouteUrl并解析任何可选参数{pagenum}、{orderby}
  • 应用程序检查请求的Url中是否提供了这些内容
  • 如果没有提供,它将检查路由记录的“默认值”以获取它们
    • 然后在RouteData默认值中传递这些值
  • 参数以RouteData默认值传递
  • 返回路由数据
这样做的核心原因是我希望有一个路由的动态表,它由CMS修改,以便根据路由存储某些数据

我的问题是:

如何复制MVC将Uri与路由匹配的方式?我需要查看数据库表,并根据Uri返回适当的路由。与标准ASP.NET MVC功能查看RouteCollections和使用正确路由的方式非常相似

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

  • 路线完全是动态的、流动的,由CMS控制
  • 针对无法从Uri本身推断的路由存储的数据(例如,当用户点击特定路由时,我可能希望通过发送PageId,但我不希望该PageId出现在Uri中)