|
Как передать из формы в контроллер десятичное число?
|
|||
---|---|---|---|
#18+
Добрый день! Простейший пример, который вызывает недоумение: Модель: Код: c# 1. 2. 3. 4. 5.
Price - десятичное число хххххх,хх Контроллер: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Представление (фрагмент): Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Попытка ввести десятичное число со знаками после запятой вводит в ступор валидатор: "Значением поля Price должно быть число". Он пропускает только целые числа. Одинаково не воспринимаются в качестве разделителей и точка, и запятая. Пока вижу только вариант задания этого свойства с типом строки, а проверку делать регулярным выражением. В чём причина? С уважением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2019, 10:30 |
|
Как передать из формы в контроллер десятичное число?
|
|||
---|---|---|---|
#18+
ValGer, Нашёл как эту хрень обойти. Core: Код: html 1. 2. 3. 4. 5. 6. 7.
Это генерируется в HTML Код: html 1. 2. 3. 4. 5.
(часть обрезано) Вижу что есть сгенерированный атрибут "... data-val="true" ..." Явно в тэге прописываю его как false, то есть отменяю валидацию и всё начинает работать как надо. ....................................................................................... Код: html 1.
....................................................................................... Проверку на правильность ввода осуществляется регулярным выражением в определении модели: Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2019, 12:32 |
|
Как передать из формы в контроллер десятичное число?
|
|||
---|---|---|---|
#18+
ValGer, когда на хостинге окажется по умолчанию указана английская культура где десятичный разделитель точка, то заимеешь с этим проблемы так как там будет правильным число 123.45 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2019, 13:36 |
|
Как передать из формы в контроллер десятичное число?
|
|||
---|---|---|---|
#18+
monstrUValGer, когда на хостинге окажется по умолчанию указана английская культура где десятичный разделитель точка, то заимеешь с этим проблемы так как там будет правильным число 123.45 Согласен! Но, тут уж совсем тупой вариант, предусматривающий строковое представление в модели. А иначе ковыряйся в классах валидации - на это можно потратить всю оставшуюся жизнь. Кстати, изложенная методика решает и застарелую проблему представления даты на форме в привычном российском варианте - 27.04.2019. Единственно, лучше не использовать хелперы типа @Html.EditorFor( ... ), а сразу оперировать с тэгом <input ... /> ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 11:18 |
|
Как передать из формы в контроллер десятичное число?
|
|||
---|---|---|---|
#18+
ну принимай строкой и потом распарси в сеттере там в дробное число. Один хрен пост передаёт с формы что-то типа id=1&value=3.5 в виде строки, которая затем пытается надеться на класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2019, 22:29 |
|
|
start [/forum/topic.php?fid=18&fpage=14&tid=1354960]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 420ms |
0 / 0 |