Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net webforms动态路由_C#_Asp.net_Routing - Fatal编程技术网

C# asp.net webforms动态路由

C# asp.net webforms动态路由,c#,asp.net,routing,C#,Asp.net,Routing,我在sql server中有一个包含页面的表,创建的每个页面都有一个slug。我一直在做的是在表格中的每一页获取slug并执行以下操作: routes.MapPageRoute(page.Slug, page.Slug, "~/page.aspx?id=" + page.Id, true, new System.Web.Routing.RouteValueDictionary { { "id", page.Id } }); 到目前为止,这是完美的。我的问题是,它在应用程序启动时在

我在sql server中有一个包含页面的表,创建的每个页面都有一个slug。我一直在做的是在表格中的每一页获取slug并执行以下操作:

 routes.MapPageRoute(page.Slug, page.Slug, "~/page.aspx?id=" + page.Id, true, new System.Web.Routing.RouteValueDictionary { { "id", page.Id } });      
到目前为止,这是完美的。我的问题是,它在应用程序启动时在global.asax文件上运行,因此如果我创建了一个新页面,除非我在iis中重新启动网站,否则映射将无法工作。我在读这篇文章,但还不能让它工作,也不确定这是否能解决它,因为理论上,当创建一个页面时,它应该自动刷新所有路由。有什么想法吗

因此,使用RouteMagic时,我得到的错误对象引用未设置为此行对象的实例:

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

您可能缺少动态编译。签入示例代码,在其中动态编译代码

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

另外,确保Route.cs设置为Content,这样它就不会静态编译。

具体问题是什么?您正在附加ConfigFileChangeNotifier委托吗?@beautifulcoder如何附加它?这两行是我不知道要添加到哪里的。这是我需要重新创建路由的时候吗?你看过示例代码了吗?它应该会告诉您,这就是我试图下载的示例代码,但它不再可用: