Ввод числа 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” и десятичный разделитель на основе культуры

Другие вопросы по тегам