Моя цель - проверить ввод пользователя на стороне клиента, в зависимости от культуры пользователей.
У меня есть примитивная модель данных со следующей структурой:
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 Plugin для глобализации) ПОСЛЕ вышеупомянутых 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.
Итак, теперь я нахожусь в каком-то мертвом замке, где я не могу выбраться.
Опять же, моя цель - проверить ввод десятичного числа на стороне клиента и сервера, исходя из культуры пользователей (в этом случае он был вынужден быть немецким). Что я делаю неправильно?
Любая помощь очень ценится! Заранее благодарю вас!