2011-12-29 4 views
1

내 웹 사이트에 여러 언어와 UI 문화를 표시하고 싶습니다. 나는 자동으로 그렇게 브라우저에서 문화를 집어 들고는 IIS 7 플래그를 활성화 한 :ASP.NET MVC 3의 문화 문제

<globalization 
    enableClientBasedCulture="true" 
    culture="en-GB" 
    uiCulture="auto:en"/> 

이 그 올바른 자원 파일을로드에서 완벽하게 작동하고 올바른 문화가 표시됩니다 (GB 0.00 0, DE는 00).

그러나 이것은 예기치 않은 문제가 외부 서비스와 관련되어 있습니다 (예 : PayPal과의 인터페이스 코드). ToString("0.00") -

var paymentDetails = new PaymentDetailsType 
{ 
    ItemTotal = new BasicAmountType 
    { 
     currencyID = currencyCode, 
     Value = basket.SubTotal.ToString("0.00") 
    }, 
    ... 
} 

이 코드는 기본적으로 문화가 (독일어 예 DE에 대한) 소수점으로 쉼표를 가지를 선택하면 페이팔은 항상 점 소수점을 필요로하지만 같은, 그래서 '50.25' 같은 형식 문자열을 생성 '50,25'을 생성하므로 내 코드가 실패합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 나는 여전히 문화를 사용자 문화로 설정하고 싶지만 내 코드의 특정 부분을 자신의 문화를 사용하도록 설정하고 싶습니다.

나는 특정 문화에서 ToString() 방법으로 먹일 수 있지만, 이것은 매우 hackish 것 같습니다. 더 전문적인 깨끗한 접근법?

+0

특정 문화에 먹이 :

Value = basket.SubTotal.ToString("0.00", CultureInfo.InvariantCulture) 

여기에 두 번째 System.IFormatProvider 매개 변수를 사용 된 toString 과부하 (에 대한 링크)입니다. –

답변