2017-12-08 1 views
0

내 APP에서 클라이언트 측 유효성 검사를 구성하는 데 매우 어려움이 있습니다. 현지화 된 pt-BR 입력을 받아 들일 수 있기를 바랍니다. ASP.NET 핵심 MVC에서 클라이언트 측 유효성 검사를위한 culture 구성

나는 시작할 때 사용하는 응용 프로그램 구성 시도 :

var locale = "pt-BR"; 
RequestLocalizationOptions localizationOptions = new RequestLocalizationOptions { 
    SupportedCultures = new List<CultureInfo> { new CultureInfo(locale) }, 
    SupportedUICultures = new List<CultureInfo> { new CultureInfo(locale) }, 
    DefaultRequestCulture = new RequestCulture(locale) 
}; 

을 나는 주 HTML 파일에 <html lang="pt-br">을 설정합니다.

서버 측에서는 통화, 날짜 시간 및 숫자를 렌더링하지만 클라이언트 유효성 검사는 여전히 en-US 입력을 기대합니다.

클라이언트 측 jquery.validatejquery.validate.unobtrusive을 사용

가 어떻게 클라이언트 측 유효성 검사 지역화 된 입력을 이해하기를 구성 할 수 있습니다

?

+0

https://developer.mozilla.org/en-US/docs/ 웹/JavaScript/Reference/Global_Objects/Intl – Igor

+0

@Igor 모든 문서를 읽었지만 도움이되지 않습니다. 솔루션을 찾을 수 없었습니다 –

+1

표준 자바 스크립트 메서드를 사용하여 문자열과 다른 유형간에 변환하는 경우 클라이언트를 로켈을 고려하도록 "구성"할 수 없습니다. 'Intl' 라이브러리에서 함수를 호출해야합니다. – Igor

답변

0

과 같이 헬퍼 클래스를 만듭니다 : 다음 Global.asax.cs에서

public class PortugueseCulture : CultureInfo 
{ 
    private readonly Calendar cal; 
    private readonly Calendar[] optionals; 

    public PortugueseCulture() 
     : this("pt-BR", true) 
    { 
    } 

    public PortugueseCulture(string cultureName, bool useUserOverride) : base(cultureName, useUserOverride) 
    { 
     //Your Custom Currency Numbers Calendar Culture Code 
    } 

    public override Calendar Calendar 
    { 
     get { return cal; } 
    } 

    public override Calendar[] OptionalCalendars 
    { 
     get { return optionals; } 
    } 
} 

를 추가하려면이 방법을

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
     var portugueseCulture = new PortugueseCulture(); 
     Thread.CurrentThread.CurrentCulture = portugueseCulture; 
     Thread.CurrentThread.CurrentUICulture = portugueseCulture; 
    } 
관련 문제