2014-11-24 136 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