2011-01-26 121 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是靜態的,所以在所有會話中共享相同的路由。所以你不能爲每個會話設置一組不同的路由。

相關問題