是否可以使用ASP.NET从数据库加载路由?
For each r as SomeRouteObject in RouteDataTable
routes.MapRoute( _
r.Name, _
r.RouteUri, _
r.RouteValues, _ //??
r.Constraints _ //??
)
Next
我应该如何存储路由值/约束?我知道有几个'默认'路由值,如.Controller
和.Action
,但是我还需要完全自定义的内容,例如.Id
或.Page
...
答案 0 :(得分:2)
有可能但不可行。他们在Global.asax中提供了静态的路由配置,因为路由往往是静态的并且长时间保持不变。如果他们不这样做,那么无论如何你都会遇到SEO问题。所以我建议你先停下来,然后想一想你是否真的需要可配置的路线。
但是可以在后台使用DB来定义您的路线。在您的情况下,您可以将值存储为序列化字符串键/值对,因为RouteValuesDictionary
可以接受键值对以及输入值。
如果路由定义在默认值/约束方面保持不变,而不是URL,则可以提供自己的接口并提供实现它的类。在这种情况下,您可以只存储定义特定路由值的URL和类定义(类似于web.config
中定义的)。这样,如果您需要复杂的对象配置,它将非常简单...