39 votes

MVC DateTime validation - format de date britannique

J'ai une vue simple avec deux champs de date avec des contrôles ValidationMessageFor ajoutés pour la validation JavaScript discrète.

Le problème est que l'on continue à me dire que ma date n'est pas valide, alors qu'elle est au bon format (jj/MM/aaaa).

J'ai ajouté <globalization culture="en-GB" uiCulture="en-GB"/> à mon web.config, et j'ai également inclus [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] sur chaque propriété DateTime, mais il n'accepte toujours pas les dates au format UK.

Y a-t-il quelque chose d'évident que je manque ici ?

100voto

Bohdan Points 745

En fait, il suffit de surcharger la méthode de validation JavaScript discrète pour la date.

jQuery(function ($) {
    $.validator.addMethod('date',
    function (value, element) {
        if (this.optional(element)) {
            return true;
        }

        var ok = true;
        try {
            $.datepicker.parseDate('dd/mm/yy', value);
        }
        catch (err) {
            ok = false;
        }
        return ok;
    });
});

12voto

kestrelb Points 121

L'exemple de Bohdan a fonctionné à merveille ! J'ai ajouté votre réponse.

Pour être complet, j'ai écrit un article de blog sur la façon d'intégrer toutes les parties (Modèle, Vue, EditorTemplate personnalisé, inclusions jQuery et ajout de la solution de Bohdan).

Vous pouvez le lire ici : http://www.kestrelblackmore.com/blog/jquery-datepicker-mvc4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X