Question

J'ai une classe personne ayant une propriété BornDate dans mon modèle défini comme

[DisplayName("Born Date")]
public DateTime? BornDate { get; set; }

J'utilise ce champ à mon avis en tant que

<td style="white-space:nowrap">
    <%= Html.LabelFor(model => model.BornDate)%>
    <br />
    <%= Html.TextBoxFor(model => model.BornDate, new { id = "bornDate" })%>
    <%= Html.ValidationMessageFor(model => model.BornDate, "*")%>
</td>

Le problème est que quand j'édite une instance personne la zone de texte BornDate est formaté comme

dd/MM/yyyy hh.mm.ss

alors que je voudrais formater sans la partie de temps ( « jj / mm / aaaa »). Je ne suis pas en mesure d'utiliser la méthode toString avec la chaîne de format, car il est un champ annulable.

Que puis-je faire?

Était-ce utile?

La solution

Vous devriez être en mesure d'utiliser la valeur. Il suffit de le vérifier est non nul d'abord.

var displayDate = model.BornDate.HasValue ? model.BornDate.Value.ToString("yyyy") : "NoDate";

Autres conseils

Je sais ce qui est très en retard, mais je faisais des recherches un autre problème et est tombé sur cette question. Il y a une façon de montrer que la partie date qui ne nécessite pas la couche de présentation mise en forme.

[DisplayName("Born Date")]
[DataType(DataType.Date)]
public DateTime? BornDate { get; set; }

L'utilisation de ce veillera à ce que partout où vous lient à cette propriété sur votre vue, seule la date montrerez

Hope this helps quelqu'un

Pour ce faire, à votre avis, vous pouvez utiliser la syntaxe Razor, ainsi:

 @Html.TextBox("BornDate", item.BornDate.HasValue ? item.BornDate.Value.ToShortDateString():"") 

Vous pouvez le faire, il travaillera avec les types de modèles nullables:

@model DateTime?
@{
    object txtVal = "";
    if (Model.HasValue) 
    {
        txtVal = Model.Value;
    };
}
@Html.TextBoxFor(x => Model, new {Value = string.Format(ViewData.ModelMetadata.EditFormatString, txtVal))

Une autre façon que je l'ai abordé cette question en ajoutant format au TextBoxFor

@Html.TextBoxFor(model => model.BornDate, "{0:MM/dd/yyyy}", new { id = "bornDate" })
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top