У меня есть приложение ASP.NET MVC, которое должно работать на английском и немецком языках. В одном из моих представлений пользователь вводит десятичное значение и значение даты/времени.Разбор значений культурной специфической десятичной и десятичной даты в .NET
// Get the price
string price = "1.23";
decimal priceValue = 0;
var allowedStyles = (NumberStyles.AllowDecimalPoint & NumberStyles.AllowThousands);
if (Decimal.TryParse(price, allowedStyles, CultureInfo.InvariantCulture, out priceValue))
{
model.Price = priceValue;
}
else
errors.Add("Please enter a valid price.");
// Parse the date
string date = "03/23/2015";
if (String.IsNullOrWhiteSpace(date) == false)
{
DateTime dateValue = DateTime.MinValue;
if (DateTime.TryParse(saleDate, out dateValue))
{
model.Date = dateValue;
}
else
errors.Add("Please enter a valid date.");
}
Когда приведенный выше код работает в английской культуре, Decimal.TryParse
линия возвращается false
. Когда код работает в немецкой культуре, линии Decimal.TryParse
и DateTime.TryParse
возвращаются false
. Что я делаю не так? Как я могу анализировать значения Decimal и DateTime в разных культурах?