ASP.NET路由 - 从数据库加载路由?

时间:2010-03-12 14:41:30

标签: asp.net database routing

是否可以使用ASP.NET从数据库加载路由?

For each r as SomeRouteObject in RouteDataTable
  routes.MapRoute( _
        r.Name, _
        r.RouteUri, _
        r.RouteValues, _  //??
        r.Constraints _   //??
    )
Next

我应该如何存储路由值/约束?我知道有几个'默认'路由值,如.Controller.Action,但是我还需要完全自定义的内容,例如.Id.Page ...

1 个答案:

答案 0 :(得分:2)

在跳之前先想想

有可能但不可行。他们在Global.asax中提供了静态的路由配置,因为路由往往是静态的并且长时间保持不变。如果他们不这样做,那么无论如何你都会遇到SEO问题。所以我建议你先停下来,然后想一想你是否真的需要可配置的路线。

但是可能

但是可以在后台使用DB来定义您的路线。在您的情况下,您可以将值存储为序列化字符串键/值对,因为RouteValuesDictionary可以接受键值对以及输入值。

如果路由定义在默认值/约束方面保持不变,而不是URL,则可以提供自己的接口并提供实现它的类。在这种情况下,您可以只存储定义特定路由值的URL和类定义(类似于web.config中定义的)。这样,如果您需要复杂的对象配置,它将非常简单...