it-swarm.com.de

Format DateTime mit Datenanmerkungen zuweisen?

Ich habe dieses Attribut in meinem Ansichtsmodell:

[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }

Wenn ich das Datum anzeigen oder ein Textfeld mit dem Datum füllen möchte, habe ich folgende:

<%: Model.StartDate %>

<%: Html.TextBoxFor(m => m.StartDate) %>

Wann immer das Datum angezeigt wird, wird es wie folgt angezeigt: 01/01/2011 12:00:00

Aber ich möchte nur anzeigen 01.01.2011

Gibt es eine Möglichkeit, ein Anzeigeformat mit Datenanmerkungen anzuwenden? Ich möchte nicht zu jeder Instanz gehen, wo ich ein Datum anzeigt, und etwas Code hinzufügen, um es zu formatieren.

79
Steven

Versuchen Sie es mit:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
131
David Fox

Hast du das probiert? 

[DataType(DataType.Date)]
37
rk1962

In mvc 4 können Sie dies ganz einfach mit TextBoxFor tun.

@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })

Sie müssen also keine Datenanmerkungen im Modell oder in der Ansichtsmodellklasse verwenden

22

Wenn Ihr Datenfeld bereits ein DateTime-Datentyp ist, müssen Sie [DataType(DataType.Date)] nicht für die Annotation verwenden. benutz einfach:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]

verwenden Sie in der jQuery datepicker für Ihren Kalender

    $(document).ready(function () {
        $('#StartDate').datepicker();
    });

in Ihrem HTML-Code verwenden Sie EditorFor helper:

    @Html.EditorFor(model => model.StartDate)
14
Toddt

Wenden Sie DataAnnotation wie folgt an:

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
13
Chirag

Verwenden Sie dies, aber es ist eine vollständige Lösung:

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
9
Renatto Machado

Verwenden Sie EditorFor anstelle von TextBoxFor

4
collusionbdbh

Nach dem Kommentieren

          // [DataType(DataType.DateTime)] 

Verwenden Sie das Data Annotation-Attribut:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]

STEP-7 des folgenden Links kann Ihnen helfen ...

http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html

setzen Sie Ihre Eigenschaft mit dem folgenden Code zum Zeitpunkt der Modellerstellung. Ich denke, Ihr Problem wird gelöst .. und die Zeit wird nicht in der Datenbank angezeigt. Sie müssen keine Anmerkungen hinzufügen.

private DateTime? dob;
        public DateTime? DOB
        {
            get
            {
                if (dob != null)
                {
                    return dob.Value.Date;
                }
                else
                {
                    return null;
                }

            }
            set { dob = value; }
        }
0
user4719992

Das ist für mich in Ordnung

[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]
0
FelixAVeras