web-dev-qa-db-fra.com

Afficher la valeur DateTime au format jj / mm / aaaa dans Asp.NET MVC

Est-il possible d'afficher une valeur DateTime au format jj/mm/aaaa à l'aide des méthodes HTML Hepler dans Asp.NET MVC? J'ai essayé de le faire en utilisant certains formats dans @Html.LabelFor et en ajoutant des annotations à la propriété associée, comme ci-dessous, mais cela n'a aucun sens. Toute aide pour résoudre ce problème serait appréciée.

Modèle:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> RegistrationDate { get; set; }
64
Murat Yıldız

Tout ce que vous avez à faire est d’appliquer le format souhaité dans l’appel d’aide HTML, c’est-à-dire.

@Html.TextBoxFor(m => m.RegistrationDate, "{0:dd/MM/yyyy}")

Vous n'avez pas besoin de fournir le format de date dans la classe de modèle.

81
Mahajan344

Après quelques heures de recherche, je viens de résoudre ce problème avec quelques lignes de code.

Votre modèle

      [Required(ErrorMessage = "Enter the issued date.")]
      [DataType(DataType.Date)]
      public DateTime IssueDate { get; set; }

Razor Page

     @Html.TextBoxFor(model => model.IssueDate)
     @Html.ValidationMessageFor(model => model.IssueDate)

Jquery DatePicker

<script type="text/javascript">
    $(document).ready(function () {
        $('#IssueDate').datepicker({
            dateFormat: "dd/mm/yy",
            showStatus: true,
            showWeeks: true,
            currentText: 'Now',
            autoSize: true,
            gotoCurrent: true,
            showAnim: 'blind',
            highlightWeek: true
        });
    });
</script>

Fichier Webconfig

    <system.web>
        <globalization uiCulture="en" culture="en-GB"/>
    </system.web>

Maintenant, votre boîte de texte acceptera le format "jj/mm/aaaa".

50
iYogi

Je sais que c’est une question plus ancienne, mais, à titre de référence, voici un moyen très simple de formater des dates sans annotations de données ni autres paramètres:

@Html.TextBoxFor(m => m.StartDate, new { @Value = Model.StartDate.ToString("dd-MMM-yyyy") })

Le format ci-dessus peut bien sûr être changé en n'importe quoi.

10
Dav.id

Ou utilisez-le simplement dans votre vue (page Razor)

@item.ResgistrationhaseDate.ToString(string.Format("dd/MM/yyyy"))

Je recommande de ne pas ajouter de format de date dans votre classe de modèle

7
Ayman

Depuis que la question était "display":

@Html.ValueFor(model => model.RegistrationDate, "{0:dd/MM/yyyy}")
6
Steven

Vous devez utiliser HTML helper, et vous n'avez pas besoin de fournir le format de date dans la classe de modèle. e.x:

@Html.TextBoxFor(m => m.ResgistrationhaseDate, "{0:dd/MM/yyyy}")
2
Jehad87