2008-09-17 4 views
4

사용자 정의 MvcRouteHandler를 제공 한 경험이 있습니까? 내 응용 프로그램에서 http : // mydomain/en/about 또는 http : // mydomain/de/about과 같은 세계화 패턴을 구현하고 싶습니다.MVC C# 사용자 지정 MvcRouteHandler - 방법?

퍼시스턴스에 관해서는 요청이 도착하자마자 쿠키를 읽고 싶습니다.이 쿠키에 언어 설정이 있다면 적용하십시오 (따라서 에 도착하는 사용자는 http : // mydomain/이됩니다.) 예를 들어 : http : // mydomain/ko/으로 전송할 수 있습니다. 쿠키가없는 경우 브라우저에서 지원하는 첫 번째 언어를 가져와이 쿠키를이 쿠키에 저장하고 싶습니다.

mvc에서 제공하는 표준 라우팅 메커니즘을 사용하여 초기 프로젝트 템플릿을 만들 수 없다고 생각합니다. 뉴스 그룹에서 MvcRouteHandler를 살펴보고 내 팁을 구현하는 팁을 얻었습니다. 그러나 그것을하는 방법에 대한 샘플을 찾기가 어렵습니다.

아이디어가 있으십니까?

답변

2

내가하는 일에 맞춤 경로 처리기가 필요하다고 생각하지 않습니다.

"globalized"URI의 경우 "locale"매개 변수가 "en", "de"등과 같아야한다는 제약 조건을 가진 일반 MVC 경로가 수행됩니다. 이 제약 조건은 전역 화되지 않은 URI가 경로와 일치하지 못하게합니다.

"글로벌화되지 않은"URI의 경우 기본 또는 쿠키 세트 로캘 URI로 리디렉션되는 "포괄적 인"경로를 만듭니다.

"글로벌화 된"URI가 "이미 글로벌화 된"URI가 리디렉션을 통과하지 않도록 Global.asax의 "catch-all"경로 위에 "globalized"경로를 배치하십시오.

특정 URI 패턴이 컨트롤러에서 동작이 아닌 것을 트리거하도록하려면 새 경로 처리기를 만들어야합니다. 하지만 그게 네가 상대하고있는 부분이라고 나는 생각하지 않는다.

0

ASP.NET MVC의 기본 템플릿으로이 작업을 수행 할 수 있어야합니다. 비슷한 작업을 수행하고 있습니다.

언어 쿠키를 확인하는 컨트롤러로 이동하는 기본 경로를 설정하고 해당 쿠키를 기반으로 사용자를 리디렉션합니다.

관련 문제