2011-12-03 95 views
0

以下文件:ASP.net路由和全球化

~/Admin/Dashboard.aspx 
~/Admin/Welcome.aspx 

administrator/{culture}/dashboard/ 
administrator/{culture}/welcome/ 
administrator/dashboard/ (for invariant culture) 
administrator/welcome/ (for invariant culture) 

地圖

/administrator/dashboard/ 
/administrator/welcome/ 

從站點地圖的信息加載到樹路由控制。

方案

用戶選擇法語作爲從列表控件,它被保存在會話所需的語言。

問題

如何體現在導航(樹型控件)的變化?

administrator/fr/dashboard/ 
administrator/fr/welcome/ 

我處於基本頁面類的InitializeCulture()事件的中間。我本可以使用Response.Redirect並執行一個醜陋的查找並替換爲樹的數據綁定事件,但這一定不是正確的方法。

評論超過讚賞。

回答

0

好問題。站點地圖和網址重寫(路由)播放不好。

[1]實現可以採取頁路徑作爲參數,並返回正確的URL重寫路徑的方法:

的getURL( '/管理/ Dashboard.aspx') 這將返回字符串的URL,基於url參數和不變文化等。

[2]在站點地圖使用正常的網址。 /Admin/Dashboard.aspx

[3]當您綁定樹時,您需要使用GetUrl方法來更新您的網址。

同樣的方法,如果您使用sitemappaths,那也將以相同的方式處理。

這就是我在大多數項目中所做的工作。