저는 새로운 Asp.Net 코어 mvc 응용 프로그램에서 wokring입니다. URL에서 현재 앱 문화를 설정하는 맞춤 제약 조건이있는 경로를 정의했습니다. I는 다음과 같습니다 사용자 정의 IRequestCultureProvider
을 만들어 내 응용 프로그램에 대한 현지화를 관리하기 위해 노력하고있어 :Asp.Net 코어 URL에서 RouteData 값을 가져옵니다
public class MyCustomRequestCultureProvider : IRequestCultureProvider
{
public Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
{
var language= httpContext.GetRouteValue("language");
var result = new ProviderCultureResult(language, language);
return Task.FromResult(result);
}
}
내 MyCustomRequestCultureProvider
괜찮 모든 요청에 맞았다. 내 문제는 MVC 파이프 라인에서 내 공급자의 DetermineProviderCultureResult
메서드가 라우팅 프로세스 전에 충돌하므로 httpContext.GetRouteValue("language")
은 항상 null을 반환합니다. MVC의 이전 버전에서
, 나는 내가 새로운 framewrok 오른쪽에 같은 일을 할 수있는 방법을 찾을 수 없습니다 수동으로
var wrapper = new HttpContextWrapper(HttpContext.Current);
var routeData = RouteTable.Routes.GetRouteData(wrapper);
var language = routeData.GetValue("language")
를 수행하여 라우팅 과정을 통해 내 URL을 처리 할 수있는 possiblity가 있었다 지금. 또한 언어 데이터를 사용하여 언어를 찾아 내 URL 문자열을 일부 문자열 함수로 분석하여 언어를 찾을 수 없습니다.
이 [질문과 대답] (http://stackoverflow.com/questions/35829426/optionally-override-request-culture-via-url-route-in을 정의 -an-asp-net-core-1-0-applica/35970676 # 35970676) 도움이 될 수 있습니다. –
@nboisvert이 문제를 해결할 수 있습니까? – SherleyDev
@SherleyDev 내 대답을 참조하십시오 –