Локализация на десетични числа в MVC

Когато работим с данни от десетичен тип, когато използваме валидиране от страна на клиента чрез javascript, може да срещнем проблем: тъй като имаме българоговоряща култура, запетая ще се използва като разделител между дробната и целите части в числата, но библиотеките за валидиране на javascript при въвеждане на дробно число със запетая ще открият подобно въвеждане като грешка. Например имаме следния модел:

И изглед за създаване на обект от дадения модел:

В секцията Скриптове са свързани всички скриптове, необходими за валидиране. Но при проверка от страна на клиента атрибутът Range няма да се задейства правилно и всяко въвеждане с точка и запетая ще се счита за грешка. Тук има две решения.

За да може точката и запетая да се валидира нормално, трябва да променим секцията за скрипт на изгледа, както следва:

С този javascript код ние отменяме действието на библиотеката jquery.validate.js. Следователно този код трябва да бъде поставен след включването на тази библиотека.

По някаква причина решихме да изоставим запетаята като разделител и искаме да използваме точка. В този случай трябва изрично да зададем английската езикова култура за приложението. За да направим това, отиваме във файлаweb.configв нашия проект и добавяме следната дефиниция на култура към секцията system.web:

Съответно ще трябва да зададем числа в атрибута Range не със запетая, а с точка: [Range(typeof(decimal),"5.0", "100.6", ErrorMessage = "Най-ниската цена е 5 рубли"]