2009-08-17 94 views
4

我想在我的数据库中创建路由并将它们注册到Global.asax.cs的Application_Start中。一切都很好,但在数据库中的任何变化,我必须重置应用程序,以便让应用程序来接受我的更改。重置asp.net mvc路由而不重置应用程序

如果我可以在不重新启动应用程序的情况下重置路线,问题就会解决。 我将如何实现它的极客?一个自定义的httpmodule?或...

+0

我会很感兴趣地看到你的基于数据库的解决方案以这种方式存储路线。我在网上看到了一些例子,但它们通常是垃圾,或者还不够。 – 2009-08-17 09:03:39

回答

6
public static void UpdateRouteRegistration() { 
    RouteCollection routes = RouteTable.Routes; 
    using (routes.GetWriteLock()) { 
    routes.Clear(); 
    // repopulate route table here 
    } 
} 

然后从Application_Start和其他任何时候调用此方法来初始化路由表。注意:这是来自记忆,可能会有点错误,但你明白了。 :)

-3

愚蠢的答案,路线不能重新启动应用程序添加和调用UpdateRouteRegistration()没有重新启动将清除路线,所以你会最终抛出每个请求的错误。