2011-04-13 94 views
0

我希望我的網址看起來像這樣www.website.com/browse/computers/consoles/playstation-3/en-NZ.aspx。它開始的部分 - 瀏覽哪些我認爲是我的控制器 - 計算機/控制檯/ playstation-3是我的動作, - en-NZ.aspx是我想要命名的頁面。我的三個問題是,如何在有多個部門的情況下設置動作部分,以及CultureInfo的en-NZ的正則表達式是什麼/\{2, [a-z]}\-\{2, [A-Z]}我還需要該表達式來爲兩個小寫字母表示火雞,例如tr這是唯一使用兩個字母的語言代碼。您如何在{browse}/{* multipleDepartments}/part之後訪問網址中的特定部門。Url路由問題多個部門

void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapRoute(
    "browse", //Name of the Route (can be anyuthting) 
    "{*departments}/regexp goes here.aspx", // parameters not to sure about the* 
    "~/Departments.aspx"); //Page which will handles and process the request 
} 

檢查我的意見 此外,我已經創建了createds的URL,我就建立像例如上面的鏈接/電腦/遊戲機/遊戲機-3,如果我不得不把在參數如何做一個CTE表達我在參數url中處理了這個問題,我的意思是這個參數在同一個查詢中會是多個,比如Departments.aspx?a = computersb =控制檯& c = playstation-3。我不知道查詢有多深,所以如果在這種情況下處理參數,我該怎麼辦。

回答

4

我認爲你是這樣做的錯誤方式......文化信息不應該是網頁名稱,它應該是網址的一部分。您通常不會爲不同的語言創建單獨的頁面,而是使用資源來本地化頁面。

通過URL路由,通常路由的構成遵循{controller}/{action}/{id}的模式。

那麼您正在尋找路由的URL將類似於此:

​​

更多參考,看看這些好的教程:

+0

+1我的想法正好。文化信息絕對不是網頁的名稱。我會進一步說,如果這是用於l10n,它應該是一個參數,而不是URL的一部分。 – Elad 2011-04-13 11:11:09