2011-03-09 5 views
2

다국어 웹 사이트의 장르, 태그, 스타일 등에 따라 그림을 표시하는 경로가 있습니다.경로의 첫 번째 매개 변수의 기본값

그것은 나쁘지 않아 보이는, 뭔가

en/Genre/allegorical-painting 

그러나

처럼 원하는 것을 클라이언트, 단지

Genre/allegorical-painting 

나는 기본적으로 "EN"이 영어 언어 엔 를 제외하고 얻을 수 있습니다 하지만 그것은 항상 렌더링됩니다 ... 내가 수동으로 제거하면 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

당신은 LANG없이 두 번째 경로를 추가하고, 기본값을 지정할 수 있습니다 그것은

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); 
관련 문제