1
在初始重定向之後,是否可以在不使用301/302重定向的情況下將MVC3請求重定向到區域路由?讓我解釋一下我想要的,因爲這對我來說聽起來很複雜。重定向到ASP.Net而不影響Url的區域MVC3
基本流程:
- 請求:http://somedomain.com/?ContextId=00001
- 重定向
- 即成從區域01的內容;控制器家;動作指數
- CONTEXTID查詢字符串項從URL刪除
所以最終的結果是,所有的請求http://somdomain.com初始CONTEXTID設置將利用區域,直到這樣的時刻,當一個新的後已指定ContextId。
我可以使用IHttpModule
捕獲查詢字符串,然後在會話中爲後續請求設置一些值,但隨後我需要發出RedirectToXXXX()
調用來執行重定向。這將產生一個包含該區域的URL,然後我需要在將來識別這些「映射」請求以防止重定向循環。 Euwwww。
我已經查看了自定義路由約束,但是路由在管道中發生得很早,導致沒有會話可用,這使得難以「知道」約束所連接的路由是否是我想要的路由。特別是因爲我不想在這個階段包含在請求URL中的區域。
這可能嗎?任何想法都會受到歡迎。
您可以在您的路線限制中使用Cookie嗎? – tvanfosson
現在只是使用cookie進行測試。不知道它會適合我們的最終解決方案。感謝您的建議 - 將報告與調查結果。 –
@tvanfosson似乎可以接受cookies,並且它們在RouteConstraint中很好地工作。由於路線圖中缺少命名空間,導致網址404ing輕微滑動。謝謝。如果你想發佈這個答案,我會給它一個答案:) –