2011-03-09 62 views
2

我有用於多語言網站的流派,標籤,樣式等顯示繪畫的路線。路線中第一個參數的默認值

它看起來不壞,像

en/Genre/allegorical-painting 

但是,想要什麼客戶是爲了排除EN英語語言和得到公正

Genre/allegorical-painting 

我 「恩」 爲默認值,但它始終呈現...當我手動刪除它時,我有404錯誤。這裏是我的規則定義:

var searchActionsConstraint = new RouteValueDictionary { { "action", "Style|Tag|Painting-School|Art-Movement|Artist-by-Genre|Gallery|Search|Genre|Technique|Material" }, {"lang", "en|es|fr"} }; 
DomainRoute wikiSearchRoute = new Route("{lang}/{action}/{SearchTerm}/{CurrentPage}/{SearchCategory}/{searchTextMode}", 
new RouteValueDictionary(new 
{ 
lang = "en", 
controller = "WikiSearch", 
action = "", 
SearchTerm = "Any", 
CurrentPage = "1", 
SearchCategory = "Painting", 
searchTextMode = "SearchTags" 
}), searchActionsConstraint, new DomainRouteHandler()); 

RouteTable.Routes.Add("WikiSearchRoute", wikiSearchRoute); 

一般來說,如何在MVC中隱藏默認路由參數?

回答

4

你可以添加第二個路徑沒有郎,並指定默認情況下它

DomainRoute wikiSearchRouteEn = new Route("{action}/{SearchTerm}/{CurrentPage}/{SearchCategory}/{searchTextMode}", 
new RouteValueDictionary(new 
{ 
lang = "en", 
controller = "WikiSearch", 
action = "", 
SearchTerm = "Any", 
CurrentPage = "1", 
SearchCategory = "Painting", 
searchTextMode = "SearchTags" 
}), searchActionsConstraint, new DomainRouteHandler()); 

RouteTable.Routes.Add("WikiSearchRouteEn", wikiSearchRouteEn);