2014-11-24 102 views
0

我有一个表在SQL服务器与页面和每个页面创建一个slu。。我一直在做的是在表中的foreach页得到slug,并做到这一点:asp.net webforms动态路由

routes.MapPageRoute(page.Slug, page.Slug, "~/page.aspx?id=" + page.Id, true, new System.Web.Routing.RouteValueDictionary { { "id", page.Id } });  

到目前为止,这个作品完美。我的问题是,这在应用程序启动时在global.asax文件上运行,所以如果我创建一个映射不起作用的新页面,除非我在iis中重新启动网站。我正在阅读这篇文章的haacked,但尚未能得到它的工作,并不知道这是否会解决它,理论上导致创建一个页面时,它应该自动刷新所有路由..任何想法?

所以使用RouteMagic当我在这一行错误“不设置到对象的实例对象引用”:

RouteTable.Routes.RegisterRoutes("~/Config/Routes.cs"); 
+0

具体问题是什么?你是否附加了'ConfigFileChangeNotifier'委托? – beautifulcoder 2014-11-24 16:36:37

+0

@beautifulcoder我如何附加它? – Andres 2014-11-24 16:52:47

回答

0

你可能丢失的动态编译。检查示例代码在那里动态编译代码

var assembly = BuildManager.GetCompiledAssembly("~/Config/Routes.cs"); 
var registrar = assembly.CreateInstance("Routes") as IRouteRegistrar; 

此外,确保Route.cs设置为内容,因此不会静态编译。

+0

这两行是我不知道在哪里添加它们的。每当我需要重新创建路线吗? – Andres 2014-11-24 17:10:54

+0

你是否通过示例代码?它应该告诉你在那里 – beautifulcoder 2014-11-24 20:55:57

+0

这是我试图下载示例代码的东西,它不再可用:http://haacked.com/archive/2010/01/17/editable-routes.aspx/ – Andres 2014-11-24 22:25:45