2017-10-17 6 views
2

Je startdate et enddate colonne lorsque je choisissez une date inférieure ou égale à 12, il fonctionne très bien mais quand je sélectionne ce jour plus de 12 lui donnent nul valeur l à ActionResult .datetimepicker donnant une valeur nulle à ActionResult lorsque plus de 12 mvc 5

c'est la fonction que j'utilise.

$(function() { 
    $('body').on("focus", ".datepicker", function() { 
     $('.datepicker').datetimepicker({ 
      format: 'MM-DD-YYYY' 
     }) 
    }) 
}); 

Zone de texte De la vue à partir de laquelle je sélectionne la date.

@Html.TextBoxFor(model => model.StartDate, new { placeholder = "MM-dd-yyyy", @class = "form-control datepicker" }) 
@Html.ValidationMessageFor(model => model.StartDate) 

et la validation de cette zone de texte.

[Required(ErrorMessage = "Start Date is required."), DataType(DataType.Date)] 
public Nullable<System.DateTime> StartDate { get; set; } 
[Required(ErrorMessage = "End Date is required."), DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] 
public Nullable<System.DateTime> EndDate { get; set; } 
+0

Changez la culture sur le serveur pour celle qui attend des dates dans ce format (ou créez un ModelBinder personnalisé) –

Répondre

1

intérieur <system.web></system.web> dans votre fichier web.config, ajoutez cette ligne <globalization culture="en-GB" uiCulture="en-GB" />

Définir la culture en-GB pour jj/mm/aaaa et en-US pour mm/jj/aaaa. J'espère que cela t'aides.

+0

Merci pour votre aide. Ce travail est parfait pour moi ... –

1

Dans la déclaration DateTimePicker vous précise un format MM-DD-YYYY (mois-jour-année) et sur la propriété EndDate vous utilisez DataFormatString = "{0:dd/MM/yyyy}" jours/mois/année.

Homogénéiser toutes vos dates formats, en utilisant le même ordre et le même séparateur, et ajouter un décorateur DataFormatString sur StartDate trop