ASP.NET MVC - 创建自定义Uri到Route映射处理程序

时间:2012-11-15 09:53:31

标签: asp.net-mvc database asp.net-mvc-routing custom-routes

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

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

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

我的问题是:

我如何复制MVC将Uri与路径匹配的方式?我需要基本查看数据库表并根据Uri返回相应的Route。与标准ASP.NET MVC功能在RouteCollections中的显示方式非常相似,并使用正确的路由。

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

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

0 个答案:

没有答案