2015-10-01 2 views
0

Я пытаюсь найти возможное легкое решение этой проблемы. Все решения, найденные в Интернете, не работают для меня. У меня в моей модели поле цены, которое может быть десятичным значением, например 30,5, с запятой. Но проверка возвращает мне ошибку «Поле» должно быть числом ».«Десятичное поле должно быть числом»

Я использую проверку по умолчанию, используемую в MVC, я полагаю, что она использует jQuery. Есть ли способ избежать этой проблемы?

Код модели:

[Range(0.0, Double.MaxValue, ErrorMessage = "Out of range")] 
    [DataType(DataType.Currency)] 
    public decimal Price { get; set; } 
+0

Вы уверены, что используете запятую? а не _dot_? – Grundy

+0

Зам. Моя культура по умолчанию - es-ES – Levimatt

+0

Вы установили культуру? Я забываю, как работает глобализация в MVC-4 – epascarello

ответ

2

Я считаю, что ошибка исходит от стороны клиента проверки, а не на стороне сервера. Если он действительно попал на сервер, вы должны быть в порядке с указанной культурой. Однако ненавязчивая проверка ASP.NET использует плагин jQuery Validation, и, как вы можете видеть здесь, в documentation page for the number validator, только десятичный разделитель будет проверять только .. Вам просто нужно удалить правило проверки числа из поля.

$("#Price").rules("remove", "number"); 

UPDATE

Это сообщение может помочь вам: http://blog.icanmakethiswork.io/2012/09/globalize-and-jquery-validate.html. В нем объясняется, как по существу обезопасить jQuery Validation, чтобы фактически обратить внимание на культуру.

+2

ссылка мертва! – Tobias

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