0

我的页面路由映射会根据某些条件而变化。要确定此标准,我需要访问HttpRequest这意味着我无法在Application_Start(). 在那张纸条上,我已经PreInit()在我的默认页面上完成了它,它似乎可以正常工作。但是,我在 Route Tables 中看到的所有示例都是在 Application_Start 中执行的,这纯粹是为了避免清除路由列表并再次添加它们吗?它会不会对我的 Web 应用程序以我正在做的方式造成任何伤害?

编辑:示例:

我根据项目编号以及是否正在移动设备上查看网站,从不同文件夹加载控件,在该说明中,我需要在映射路线之前了解此信息,如下所示:

RouteCollection.MapPageRoute("OneParam", "{Action}.html", String.Format("~/{1}{2}/Default.aspx", ProjectNumber, MobilePathStr));

这将映射到类似~/1234/Mobile/Default.aspx或可以映射到~/1234/Default.aspx.

4

1 回答 1

0

不要那样做。

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

要发送到 ASPX 页面,您可以return BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page)) as Page;创建PageRouteHandler或委托给它。

于 2012-12-04T17:08:05.307 回答