Создадим привязки к модели, то есть реализуем интерфейс IModelBinder, чтобы позволить использование и точки, и запятой в качестве разделителя:
public class DecimalModelBinder : IModelBinder { public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var valueResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName); if (string.IsNullOrEmpty(valueResult.AttemptedValue)) { return 0m; } var modelState = new ModelState { Value = valueResult }; object actualValue = null; try { actualValue = Convert.ToDecimal( valueResult.AttemptedValue.Replace(",", "."), CultureInfo.InvariantCulture ); } catch (FormatException e) { modelState.Errors.Add(e); } bindingContext.ModelState.Add(bindingContext.ModelName, modelState); return actualValue; } }
Который потом зарегистрируем в Application_Start:
ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder());
Таким образом решается валидация серверной части.
На клиентской части, при условии использования jQuery globalization plugin, следует перегрузить метод:
$.validator.methods.number = function (value, element) { // TODO: return true or false if value is a valid decimal }
https://falconspace.ru/blog/sozdanie-sistemy-upravleniya-zakazami-v-vide-lichnykh-kabinetov-na-sayte - Система управления заказами на предприятии. Разработка автоматизированной системы заказов
Запуск собственного маркетплейса — это захватывающий, но сложный процесс, который требует внимания к деталям и…
https://falconspace.ru/blog/sozdanie-sistemy-upravleniya-zakazami-v-vide-lichnykh-kabinetov-na-sayte - Система управления заказами на предприятии. Разработка автоматизированной системы заказов
https://falconspace.ru/blog/chto-delat-kogda-startap-ne-poshel - Причины неудачи it проекта. Как реанимировать веб-проект?
https://falconspace.ru/blog/kak-zashchitit-sayt--obespechenie-informacionnoy-bezopasnosti-sayta - Как защитить сайт? Обеспечение информационной безопасности сайта
https://falconspace.ru/blog/kak-zashchitit-sayt--obespechenie-informacionnoy-bezopasnosti-sayta - Как защитить сайт? Обеспечение информационной безопасности сайта