Моя цель - проверить вводимые пользователем данные на стороне клиента, в зависимости от их культуры.
У меня есть примитивная модель данных со следующей структурой:
public class User
{
public int UserId { get; set; }
[Required]
[StringLength(20,MinimumLength=3)]
public string Name { get; set; }
[Required]
public double Height { get; set; }
}
Кроме того, я хочу включить проверку на стороне клиента, проверяя, является ли это действительным номером.Поэтому я добавил следующие строки в раздел <head>
моего _Layout.cshtml.
<script src="@Url.Content("~/Scripts/jQuery-1.4.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
Поскольку я хочу иметь возможность проверять ввод в других языковых форматах (в данном конкретном контекстеЭто немецкий с форматом десятичных чисел 0,75
, тогда как в США это будет 0.75
), я добавил следующие строки ( Подключаемый модуль глобализации jQuery ) ПОСЛЕ ранее упомянутых jquery.validate.min.js
и jquery.validate.unobtrusive.min.js
.
<script src="@Url.Content("~/Scripts/jquery.glob.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/globinfo/jquery.glob.de-de.js")" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$.culture = jQuery.cultures['de-DE'];
$.preferCulture($.culture.name);
});
</script>
Кроме того, я добавил следующую строку в раздел web.config
в system.web
, чтобы убедиться, что немецкая культура всегда выбрана:
<globalization culture="de-DE" uiCulture="de-DE" />
Теперь я испытываю следующее поведение:
- Если я наберу
0,1
(обратите внимание на немецкое «правописание») в текстовое поле для значения «Высота», ошибка проверкипоявляется сообщение The field Height must be a number
, и я не могу отправить форму. - Если я введу
0.1
(написание по-английски), я могу отправить форму, но проверка на стороне сервера возвращает следующеесообщение об ошибке проверкиThe value '0.1' is not valid for Height.
Итак, я нахожусь в каком-то тупике, где не могу выбраться.
Опять же, моя цель - проверить ввод десятичного числа на клиентеИ серверная часть, основанная на культуре пользователей (в этом случае она должна быть немецкой).Что я делаю не так?
Любая помощь высоко ценится!Заранее спасибо!