Asp.net 在PreInit()上映射RouteTable-会导致任何问题吗?

Asp.net 在PreInit()上映射RouteTable-会导致任何问题吗?,asp.net,routes,asp.net-4.0,Asp.net,Routes,Asp.net 4.0,“我的页面路由映射”会根据某些条件发生更改。要确定此标准,我需要访问HttpRequest,这意味着我无法在Application\u Start()中进行路由映射。在这一点上,我在默认页面上的PreInit()上完成了这项工作,它似乎可以正常工作。然而,我看到的所有路由表示例都是在应用程序_Start中执行的,这纯粹是为了避免清除路由列表并再次添加它们吗?这样做会不会对我的web应用程序造成任何伤害 编辑:示例: 我根据项目编号和是否在移动设备上查看网站从不同文件夹加载控件,在映射路线之前,我

“我的页面路由映射”会根据某些条件发生更改。要确定此标准,我需要访问
HttpRequest
,这意味着我无法在
Application\u Start()
中进行路由映射。在这一点上,我在默认页面上的
PreInit()
上完成了这项工作,它似乎可以正常工作。然而,我看到的所有路由表示例都是在应用程序_Start中执行的,这纯粹是为了避免清除路由列表并再次添加它们吗?这样做会不会对我的web应用程序造成任何伤害

编辑:示例:

我根据项目编号和是否在移动设备上查看网站从不同文件夹加载控件,在映射路线之前,我需要知道这些信息,如:

RouteCollection.MapPageRoute("OneParam", "{Action}.html", String.Format("~/{1}{2}/Default.aspx", ProjectNumber, MobilePathStr));
它将映射到类似于
~/1234/Mobile/Default.aspx的东西,或者可以映射到
~/1234/Default.aspx
不要这样做

相反,您应该创建自己的
RouteBase
类,该类为每个请求查找该信息并运行相应的处理程序


要发送到ASPX页面,您可以
将BuildManager.CreateInstanceFromVirtualPath(virtualPath,typeof(page))返回为页面或创建一个
PageRouteHandler
并委托给它。

这不是一个好主意。你想完成什么?我已经添加了一个我正在做的示例。路由集合是全局(共享)状态。那是行不通的。啊,很有道理!我完全忘记了