Как я могу проверить поле валюты?
У меня есть приложение ASP.NET MVC-4 с этим полем валюты:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}", ConvertEmptyStringToNull = true)]
[DataType(DataType.Currency)]
public decimal? Price { get; set; }
Это соответствующая часть на мой взгляд:
@Html.EditorFor(model => model.Price)
@Html.ValidationMessageFor(model => model.Price)
Если цена составляет 100 евро, текстовое поле в представлении показывает:
100,00 €
Это мило.
Но у меня возникают проблемы, как только я пытаюсь сделать постбэк. Валидатор выскакивает и говорит, что поле цены должно быть числом.
Я могу это исправить, только если (1) я удалю € символ и (2) заменить десятичный разделитель (заменить запятую на точку).
Если нет лучшего решения, думаю, я мог бы изменить DataFormatString = "{0: F2}» во избежание символа валюты.
Но как сделать так, чтобы валидатор принимал запятую в качестве десятичного разделителя вместо (американской) точки?
Спасибо за помощь ребята!