2011-12-29 3 views
1

Я хочу отображать на моем сайте несколько языков и культуры пользовательского интерфейса. Я включил флаг IIS 7, который улавливает культуру из браузера автоматически так:Проблемы с культурой в ASP.NET MVC 3

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

Это прекрасно работает в том, что файлы правильные ресурсы загружены, и отображается правильная культура (+0,00 для GB; 0, 00 для DE).

Однако у этой проблемы возникла неожиданная проблема вмешательства в мои внешние службы, например, вот код для взаимодействия с PayPal.

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

Этот код в основном создает строку, отформатированную как так '50.25', однако, как PayPal всегда требует точка десятичной точки, когда культура выбрана, которая имеет запятую в качестве десятичной точки (например, DE - немецкий) в ToString("0.00") генерирует '50,25', и поэтому мой код не работает.

Какой был бы лучший способ устранить эту проблему? Я все еще хочу, чтобы культура была настроена на культуру пользователя, однако я хочу, чтобы некоторые части моего кода использовали мою собственную культуру.

Я знаю, что могу использовать в определенной культуре метод ToString(), но это кажется очень хакерским. Любые более профессиональные чистые подходы?

+0

Кормление в конкретной культуре _exactly_, что вам нужно сделать, как это то, что требует PayPal. –

ответ

Смежные вопросы