2011-01-26 108 views
0

我试图根据每个会话在.net中注册路由收集。代码我工作正常,你得到的网站/用户名,并加载正确的子页面,但你必须重新启动应用程序,以转到网站/用户名2加载这些子页面。但是当应用程序重新启动时,第二个工作,但不是第一个。在会话启动时注册路由不是应用程序启动

是否有某种方法可以为每个会话创建不同的路由集合,而不是使用system.web.routing的每个应用程序。

回答

1

您可以创建自己的路由处理程序。看看:ASP.Net MVC Framework - Create your own IRouteHandler

使用这种方法,您将能够按照不同的请求进行不同的路由。然后每个请求都可以查看您的会话值以获取正确的处理程序。

3

路由与路由名称相关联,并全局存储在Web应用程序中,因此您无法真正定义每个会话的路由。 您能举一个例子说明为什么您需要不同用户的不同路线? 最有可能通过简单地使用路由模式来解决,比如将RouteUrl设置为“member/logo/{size}/{UserName} .jpg”,您可以在通过Page生成路由URL时指定UserName和大小.GetRouteUrl()

+0

我能够在应用程序开始请求中注册路由,并按我希望的方式运行。我为每个会话需要不同的路由,因为我有多个站点运行不同路由的单个域。我刚刚清除了开始请求对象中的路由,并根据路由重新注册了路由。 http://site.com/subsite/variable-routes-based-on-subsite。其实这很快。感谢大家的回应,它激发了解决方案 – Daniel 2011-01-28 04:28:36

0

RouteTable.Routes是静态的,所以在所有会话中共享相同的路由。所以你不能为每个会话设置一组不同的路由。

相关问题