Я пытаюсь использовать ненавязчивую проверку MVC с плагином jquery globalize в MVC5 (в сочетании с пакетом jquery-validate-globalize). Для учебных целей я начал демонстрационный проект в соответствии с here, но он не может работать с globalize (он работает при невыполненной проверке Microsoft по умолчанию). Модель очень проста:Использование Jquery Globalize с MVC 5
public class GlobalizeModel
{
[Range(10.5D, 20.3D)]
public decimal Double { get; set; }
[Required]
public DateTime? DateTime { get; set; }
}
Я пытаюсь начать Globalize следующим образом в нижней части страницы _layout (вид минимальности 2 входа только): (я получить список необходимых файлов из https://johnnyreilly.github.io/globalize-so-what-cha-want/)
<script src="~/Scripts/bootstrap.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<!--cldr scripts-->
<script src="~/Scripts/cldr.js"></script>
<script src="~/Scripts/cldr/event.js"></script>
<script src="~/Scripts/cldr/supplemental.js"></script>
<!--globalize scripts-->
<script src="~/Scripts/globalize.js"></script>
<script src="~/Scripts/globalize/number.js"></script>
<script src="~/Scripts/globalize/date.js"></script>
<!--jquery globalize-->
<script src="~/Scripts/jquery.validate.globalize.js"></script>
<script>
$.when(
$.getJSON("/Scripts/cldr/supplemental/likelySubtags.json"),
$.getJSON("/Scripts/cldr/main/en/numbers.json"),
$.getJSON("/Scripts/cldr/supplemental/numberingSystems.json"),
$.getJSON("/Scripts/cldr/main/en/ca-gregorian.json"),
$.getJSON("/Scripts/cldr/main/en/timeZoneNames.json"),
$.getJSON("/Scripts/cldr/supplemental/timeData.json"),
$.getJSON("/Scripts/cldr/supplemental/weekData.json"),
$.getJSON("/Scripts/cldr/main/tr/numbers.json"),
$.getJSON("/Scripts/cldr/main/tr/ca-gregorian.json"),
$.getJSON("/Scripts/cldr/main/tr/timeZoneNames.json"),
console.log("JSONs loaded")
).then(function() {
console.log("start slicing");
return [].slice.apply(arguments, [0]).map(function (result) {
console.log("slicing done");
return result[0];
});
}).then(Globalize.load).then(function() {
Globalize.locale("en");
console.log("Locale set to en");
}).then(console.log("LOADED EVERYTHING"));
</script>
Но когда я запускаю страницу, я вижу только журналы консоли JSOns loaded
и LOADED EVERYTHING
. Более того, когда я пытаюсь проверки на стороне клиента, набрав что-нибудь в номер текстового поля (и, конечно, когда фокус теряется), я получаю следующее сообщение об ошибке в консоли:
Uncaught Error: E_DEFAULT_LOCALE_NOT_DEFINED: Default locale has not been defined.
Это сообщение here похож, и Я попытался проверить перечисленные там вещи. Я думаю, что мои объекты JSON не получены, но я не очень хороший JJ, поэтому я не уверен в этом. Я добавил следующие пункты в web.config, чтобы увидеть, если это что-то связанное с файлом сервировкой, не помог:
<system.webServer>
<staticContent>
<remove fileExtension=".json"/>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
Культуры в автоматический режим в web.config следующим образом:
<system.web>
<globalization culture="auto" uiCulture="auto" />
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
</system.web>
Вы можете увидеть Scripts
структуру папок здесь:
Итак, что же здесь проблема? Как я могу заставить эту работу работать?
Вы когда-нибудь узнавали, что происходит? Я думаю, что console.log («JSONs загружен») мешает функции нарезки. – Francisco
Нет; Я не смог его решить, поэтому решил не использовать 'глобализацию'. В фактическом проекте я отключил проверку на стороне клиента и полагался на проверку сервера в представлениях, чувствительных к культуре, например, в том числе десятичных вводах. Причина этого решения заключалась в том, что я потратил слишком много времени на это безрезультатно, и было много чего ждать. Возможно, я еще раз повторю этот вопрос в будущей надежде, что технология глобализации будет развиваться тем временем. Постскриптум Проблема сохранялась без 'console.log (« JSONs загружен »)'. – mcy