ASP.NET MVC3: forcer le contrôleur à utiliser le format de date jj / mm / aaaa
Fondamentalement, mon datepicker royaume-UNI utilise le format de dd/mm/yyyy
. Mais lorsque je soumets le formulaire, ASP.net est clairement à l'aide du format AMÉRICAIN.
(n'acceptera jours si moins de 12, c'est à dire pense que c'est le mois.)
public ActionResult TimeTable(DateTime ViewDate)
Est-il un moyen de le forcer à reconnaître d'une certaine manière?
Étrangement bien, d'autres méthodes d'insertion semblent reconnaître le format correct.
"Le dictionnaire de paramètres contient une valeur null pour le paramètre ViewDate
de type non nullable System.DateTime
pour la méthode System.Web.Mvc.ActionResult Index(System.DateTime)
dans Mysite.Controllers.RoomBookingsController
. Un paramètre facultatif doit être un type de référence, un type nullable, ou être déclaré comme un paramètre facultatif."
source d'informationauteur Doomsknight
Vous devez vous connecter pour publier un commentaire.
Avoir une lecture de cette. Il donne une bonne explication de ce qui se passe et pourquoi il fonctionne comme il le fait.
Je suis dans la situation où je connais tout le monde en utilisant le site est au royaume-UNI si je peux remplacer la valeur par défaut
DateTime
modèle de classeur:Vous avez besoin pour utiliser des ModelBinder pour votre DateTime. J'ai eu le même problème que vous.
Avez-vous essayé le réglage de la Culture Actuelle comme en-GB?
Vous pouvez le faire:
à l'échelle mondiale (global.asax sous Application_Start() ):
pour une méthode:
pour un modèle personnalisé de classe - ah non, pas de possibilité de vous causer utiliser struct DateTime 😉
Ah, désolé, je ne pouvais pas ajouter un commentaire à Adams post - it basé sur son code.
Débutant erreur. Il doit utiliser n'importe quel format que le navigateur est configuré pour. Le problème n'est pas un format, mais différents formats entre le client et le serveur. Le serveur doit émettre code que les formats de la date en fonction de la négociation locale, qui ensuite, le serveur utilise également pour l'analyser.
Nope. C'est dire que lorsque je prends une épice c'est toujours le sel, puis vous prenez toujours le sel. Votre Serveur accepte actuellement négocié la culture qui - sauf si vous modifiez les paramètres - est négocié entre le client et le serveur. Vérifier les fils actuels de la culture quand il devrait faire l'analyse pour voir ce que c'est réglé.
De mon BindigTools pour bindning DateTime? (Nullable), sur la base du livre de l'échantillon - Pro MVC3
Il utilise l'analyse exacte de sorte que vous ne devriez pas avoir de problème avec analysée dates.