Ввод числа HTML 5 с MVC не показывает десятичное число
Я пытаюсь использовать входной номер в MVC, он правильно принимает запятую (я в культуре с запятой в качестве десятичного разделителя), а MVC принимает его с пользовательским связывателем, который я сделал. Значение правильно сохраняется в базе данных и возвращается.
Проблема в том, что при передаче десятичного значения, которое выглядит как 0,231, элементу управления числом, я думаю, он пытается отформатировать его в моей культуре с запятой и не работает, поэтому ничего не появляется.
Связыватель работает при возврате на сервер, но нужно ли мне что-то еще при возврате к элементу управления, чтобы он работал при возврате на страницу?
Мой контроль в виде бритвы:
@Html.EditorFor(model => model.DecimalValueForExample, new { htmlAttributes = new { @class = "form-control", @type = "number", @step = "any", @min = "0.001", autocomplete = "off" } })
Мой атрибут в viewmodel:
[Display(Name = "DecimalValueForExample", ResourceType = typeof(Properties.Resources))]
[DisplayFormat(DataFormatString = "{0:0.###}", ApplyFormatInEditMode = true)]
[Range(0.001, double.MaxValue, ErrorMessageResourceName = "RangeErrorMessage", ErrorMessageResourceType = typeof(Properties.Resources))]
[Required]
public decimal DecimalValueForExample{ get; set; }
2 ответа
Ничего не получалось, особенно через несколько браузеров. Так что ответом было использовать элемент управления вращением, я использую http://www.virtuosoft.eu/code/bootstrap-touchspin/
В прошлом это было проблемой соответствия браузеров, и уровни поддержки в разных браузерах и в ОС различаются. Последняя диаграмма, которую я нашел, - это примерно 12 версий для Chrome, которые в то время не поддерживали запятые в Windows. Ввод чисел в формате HTML5 - запятая и точка в виде десятичных знаков
Были также некоторые обходные пути JS, ввод html-тега type=”number” и десятичный разделитель на основе культуры