MVc 5 - валидация немецкой даты с помощью unbtrusiv js - простой подход

Вопрос: Как получить ненавязчивую проверку немецкой даты, работающей в MVC?

Поскольку я не могу найти работающий пример использования globalize 1.x с MVC 5 для проверки немецкой даты, мне потребовалось два дня для ее запуска.

Проблема заключается в порядке js-файлов, получении cldr-данных и объединении их так, чтобы их можно было использовать повторно.

В ответ я покажу свое текущее решение.

1 ответ

Решение

В этом zip-файле ( https://www.dropbox.com/sh/75dx6alck7itwia/AABFkcgOQVc1bUXFE_jYfR_da?dl=0) вы найдете все нужные вам файлы.

Это включает

  • короткий todo.txt (de and en)
  • cldr-data (jsons) в подкаталогах
  • пользовательский класс HTML-Helper, который записывает необходимые HTML/js-Scripts в представление.

Кажется, что рендеринг помощником не всегда работает. Так что, если есть проблемы с этим, скопируйте код в каждое (редактировать / новое) представление.

<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>

<script src="~/Scripts/cldr.js"></script>
<script src="~/Scripts/cldr/event.js"></script>
<script src="~/Scripts/cldr/supplemental.js"></script>
<script src="~/Scripts/cldr/unresolved.js"></script>

<script src="~/Scripts/globalize.js"></script>
<script src="~/Scripts/globalize/currency.js"></script>
<script src="~/Scripts/globalize/number.js"></script>
<script src="~/Scripts/globalize/date.js"></script>
<script src="~/Scripts/globalize/plural.js"></script>
<script src="~/Scripts/globalize/relative-time.js"></script>
<script src="~/Scripts/globalize/unit.js"></script>
<script src="~/Scripts/jquery.validate.globalize.js"></script>        

<script>
    $(document).ready(function () {
        // Use $.getJSON instead of $.get if your server is not configured to return the
        // right MIME type for .json files.
        $.when(
            $.get("/Scripts/cldr/main/de/ca-gregorian.json"),
            $.get("/Scripts/cldr/main/de/numbers.json"),
            $.get("/Scripts/cldr/supplemental/likelySubtags.json"),
            $.get("/Scripts/cldr/supplemental/timeData.json"),
            $.get("/Scripts/cldr/supplemental/weekData.json")
        ).then(function () {
            // Normalize $.get results, we only need the JSON, not the request statuses.
            return [].slice.apply(arguments, [0]).map(function (result) {
                return result[0];
            });
        }).then(Globalize.load)
    .then(function () {
        Globalize.locale("de-DE");
    });
    });
</script>

Я надеюсь, что это помогает.

Это решение, основанное на ответе MVC 5 - не может запустить глобализацию. Если вы хотите использовать пакет, см. MVC 5, глобализация, проверка немецкой даты: как связать js-скрипты?

Другие вопросы по тегам