2010-03-22 6 views
3

Mon formulaire contient une zone de texte pour la saisie de la date. Une fois soumises, les données sont utilisées pour ajouter une ligne à la table. La vue est fortement typée à la table.asp.net mvc textbox format date

Le problème est que le serveur de base de données est configuré avec le format de date américain. Mais les utilisateurs doivent utiliser le format de date britannique dans la zone de texte. Lorsque les utilisateurs entrent uk erreur de format date est levée.

La configuration du serveur de base de données ne peut pas être modifiée. Alors, que peut-on faire pour que les utilisateurs puissent entrer la date au format uk?

Répondre

4

Essayez de régler les culture in web.config:

<system.web> 
    <globalization 
     requestEncoding="utf-8" 
     responseEncoding="utf-8" 
     culture="en-GB" 
     uiCulture="en-GB"/> 
</system.web> 
0

C'est là une classe view model serait utile. L'idée est que vous créez une autre classe qui faciliterait le travail de la vue. Dans ce cas, vous exposeriez cette date sous forme de chaîne (a correctly formatted one) pour la vue. Voir les modèles sont assez faciles à créer et à maintenir en utilisant AutoMapper.

+0

J'utilise un modèle de vue. La vue est liée à viewmodel. Le modèle de vue contient la classe dans laquelle ce champ de date existe. – maX

0

J'ai rencontré le problème avec mon projet, donc après une longue recherche sur ce problème, la solution était de faire le type de date d'entrée sous forme de texte, alors vous devez utiliser l'annotation de données sur votre modèle. Cette annotation de données

[DisplayFormat (DataFormatString = "{0: aaaa/MM/dd}", ApplyFormatInEditMode = true)]
publique DateTime anniversaire {get; ensemble; }

alors ça doit fonctionner parfaitement.