2012-04-13 6 views
0

안녕하세요, great article을 사용하여 mvc3 사이트에서 현지화를 사용할 수 있도록 노력하고 있습니다. 지역 완벽하게 작동하지만 내 사이트의 영역을 도입하지 않고 내가이 문제에 온 :htmlHelper.RouteLink가 원하는 URL을 생성하지 않습니다.

htmlHelper.RouteLink(linkText, globalisedRouteData) 

곳 globalisedRouteData : 호스트/EN/SOLUCIONES :

4 Keys: Culture, Area, Controller, Action 
4 values: en, soluciones, home, index 

이 (나를 위해) 예상을 생성하지 않습니다/home/Index 색인 :/soluciones/Home? culture = en

나에게 무슨 문제가 있습니까? culture = en. globalizedRouteData에 포함 된대로/en /을 포함하지 않는 이유는 무엇입니까? 내 RegisterRoutes에서

, 나는 위치 :

 const string defautlRouteUrl = "{area}/{controller}/{action}/{id}"; 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     RouteValueDictionary defaultRouteValueDictionary = new RouteValueDictionary(new {area="soluciones_de_salud", controller = "Home", action = "Index", id = UrlParameter.Optional }); 
     routes.Add("DefaultGlobalised", new GlobalisedRoute(defautlRouteUrl, defaultRouteValueDictionary)); 

에게 Thanks¡¡

답변

0

을 당신이 '문화'

const string defautlRouteUrl = "{area}/{controller}/{action}/{culture}"; 

RouteValueDictionary defaultRouteValueDictionary = new RouteValueDictionary(new {area="soluciones_de_salud", controller = "Home", action = "Index", culture = UrlParameter.Optional }) 
에 'ID'의 사용을 변경해야 믿습니다

경로 바인딩이 발생하면 매개 변수 이름이 route 매개 변수와 일치해야합니다. 그렇지 않으면 결국 wi가됩니다

?ParamName=Value  (?culture=en) 
0

번째 문화가 URL에 필수 인 경우 문화가 필수가 아닌 경우도 id = UrlParameter.Optional

const string defautlRouteUrl = "{area}/{controller}/{action}/{culture}"; 
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
RouteValueDictionary defaultRouteValueDictionary = new RouteValueDictionary(new {area="soluciones_de_salud", controller = "Home", action = "Index" }); 
routes.Add("DefaultGlobalised", new GlobalisedRoute(defautlRouteUrl, defaultRouteValueDictionary)); 

를 제거 idculture

에 변경 시도하고 당신은 기본 값을 설정합니다

const string defautlRouteUrl = "{area}/{controller}/{action}/{culture}"; 
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
RouteValueDictionary defaultRouteValueDictionary = new RouteValueDictionary(new {area="soluciones_de_salud", controller = "Home", action = "Index", culture = "en" }); 
routes.Add("DefaultGlobalised", new GlobalisedRoute(defautlRouteUrl, defaultRouteValueDictionary)); 
관련 문제