web-dev-qa-db-fra.com

Impossible de définir le format datetime dans MVC 4 à l'aide d'annotations de données

Je vais tout essayer mais ne pas travailler ce format de date (jj/MM/aaaa), cette porte toujours mm/jj/aaaa

[Display(Name = "Release Date")]
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<DateTime> release_date { get; set; }

Vue rasoir

@Html.EditorFor(model => model.release_date)

Utilisation du modèle DateTime.

@model Nullable<System.DateTime>
@if (Model.HasValue)
{
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", Model.Value))
}
else
{
    @Html.TextBox("", String.Format("{0:dd/MM/yyyy}", DateTime.Now))
}
@{
    string name = ViewData.TemplateInfo.HtmlFieldPrefix;
    string id = name.Replace(".", "_");
}
<script type="text/javascript">
    $(document).ready(function () {
        $("#@id").datepicker({
                dateFormat: "dd/mm/yy",
                showStatus: true,
                showWeeks: true,
                highlightWeek: true,
                numberOfMonths: 1,
                showAnim: "scale",
                showOptions: {
                    Origin: ["top", "left"]
                }
          });
    });
</script>
15
Sender

Vous avez manqué 2 choses ici:

DataFormatString="{0:dd/MM/yyyy}"; //It is dd/MM/yyyy instead of dd/mm/yyyy

et vous avez également besoin de:

ApplyFormatInEditMode=true

Essayez d'utiliser ceci:

[Display(Name = "Release Date")]
[DataType(DataType.Date), DisplayFormat( DataFormatString="{0:dd/MM/yyyy}", ApplyFormatInEditMode=true )]
public Nullable<DateTime> release_date { get; set; }
22
TrizZz

{0:dd/mm/yyyy} devrait être {0:dd/MM/yyyy} parce que mm signifie minutes, pas mois:

[Display(Name = "Release Date")]
[DataType(DataType.DateTime)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public Nullable<DateTime> release_date { get; set; }
5
Darin Dimitrov

Si vous utilisez l'annotation de données. quand il est bon. mais en mode édition. il utilise toujours le format du serveur (paramètre de culture) DisplayFormat: comme son nom, uniquement pour l'affichage

Il existe des options à résoudre. - coller sur le serveur sous forme de chaîne avec votre format préféré - écrire la liaison client - Paramétrer la mondialisation dans web.config pour Format: jj/MM/aaa en utilisant le paramètre ci-dessous

<system.web>
    <globalization culture="en-GB"/>
....
0
Grey Wolf