2012-02-29 2 views
1

질문은 내 사이트의 홈페이지에 대한 것입니다. 사이트는 2 개 언어로 현지화되어 있으며 기본 언어는 IT이고 다른 언어는 EN입니다.Asp.Net MVC - URL의 경로 값 확인

내 홈 페이지 : 영어를 선택하면

www.mysite.com 

, 주소는 다음과 같습니다

www.mysite.com/en 

{language} PARAM 내 RouteData입니다. 물론

, 내가 www.mysite.com/it를 입력하면 작동하고 www.mysite.com

같은 무엇 그것이 만약 거기가 'it' 문자열이 URL에있는 경우, 내 작업 방법에 체크하면됩니다, 그리고 것, PermanentRedirect를 www.mysite.com 주소로 지정하십시오.

Request.RawUrl 문자열을 검색하여이 작업을 수행 할 수 있지만 더 좋은 방법이 있는지 궁금합니다. 당신의 행동에 매개 변수를 추가 -

감사

답변

0

당신은 사용 모델 바인딩을 할 수 있습니다. 이 경우 URL에없는 경우에만 language 매개 변수가 쿼리 문자열 또는 양식 값에서 추출 된 값을 얻을 수 있습니다.

public ActionResult Index(string language) 
    { 
     if (string.IsNullOrWhiteSpace(language)) 
     { 
      /// 
     } 
     return View(); 
    } 

또는 다른 방법으로 수동으로 경로 값을 추출하십시오. 액션에서

 string language = RouteData.Values["language"].ToString(); 
     if (string.IsNullOrWhiteSpace(language)) 
     { 
      /// 
     } 
+0

나는 ModelBinding 또는으로 RouteData 수집에 대해,이 내 경우 아니라는 것을 알고. 내 RouteData에는 항상 언어 매개 변수가 포함되어 있으며 EN 값은 기본값이므로 주소가 www.mysite.com 인 경우 EN 값은 RouteData에 있습니다. 내가 필요한 것은 EN 값이 URL 문자열에 있는지 검사하는 것입니다. 어쩌면 문자열로만 점검 할 수 있습니다. – opaera