2017-12-31 36 views
0

Ich möchte ein Datum im deutschen Datumsformat (dd.MM.yyyy) aus dem Modell in einer MVC-App anzeigen und dem Benutzer einen Datumsauswahl geben. Ich habe viele der Fragen, die zu diesem Thema bereits beantwortet wurden, durchgenommen, kann sie aber immer noch nicht zum Laufen bringen. Ich habe es in Firefox und Edge probiert, mit denselben Ergebnissen für jeden Schritt.MVC EditorFor Datum nicht angezeigt Wert

Schritt 1:

Modell:

private DateTime? inbetriebnahmedatum; 

public DateTime? Inbetriebnahmedatum 
{    
    get { return inbetriebnahmedatum; } 
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); } 
} 

Ausblick:

@Html.EditorFor(model => model.Inbetriebnahmedatum, new { htmlAttributes = new { @class = "form-control", placeholder = "Datum eingeben" } }) 

Ergebnis: Keine Datumsauswahl wird die Zeit angezeigt, Validierungsfehler enter image description here

Schritt 2: Hinzugefügt Datentyp

Modell:

private DateTime? inbetriebnahmedatum; 

[DataType(DataType.Date)] 
public DateTime? Inbetriebnahmedatum 
{ 
    get { return inbetriebnahmedatum; } 
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); } 
} 

Ausblick: unverändert

Ergebnis: Wert nicht geladen. enter image description here

Schritt 3: Displayformat hinzugefügt, Datentyp entfernt

Modell:

private DateTime? inbetriebnahmedatum; 

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")] 
public DateTime? Inbetriebnahmedatum 
{ 
    get { return inbetriebnahmedatum; } 
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); } 
} 

Ausblick: unverändert

Ergebnis: Datum angezeigt, aber keine Datumsauswahl und Validierungsfehler enter image description here

Schritt 4: Zu Web.config wurde u Culture hinzugefügt

Web.config-

<globalization uiCulture="de-DE" culture="de-DE" /> 

Ergebnis: Same enter image description here

Schritt 5: Added Datentyp wieder

Modell:

private DateTime? inbetriebnahmedatum; 

[DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")] 
public DateTime? Inbetriebnahmedatum 
{ 
    get { return inbetriebnahmedatum; } 
    set { inbetriebnahmedatum = value; OnPropertyChanged(new PropertyChangedEventArgs("Inbetriebnahmedatum")); } 
} 

Ergebnis: Wert nicht geladen, picker zeigt enter image description here

+1

Der 'DataFormatString' muss sei 'yyyy-MM-dd' (ISO-Format) beim Erzeugen des Browsers HTML-5 datepicker, und dann wird es in der Benutzerkultur angezeigt, was der entscheidende Punkt ist, es zu benutzen. –

+0

Verwenden Sie einen jQuery-Datepicker (z. B. jQueryUI), aber dann müssen Sie auch den '$ .validator' für die clientseitige Validierung neu konfigurieren. –

+0

@StephenMuecke: Du hast Recht, jetzt klappt es - Danke. –

Antwort

0

ich bin nicht sicher, aber u kann diese versuchen, so wie versuchen eingeben >>: 01/01/2018

oder

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

oder

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

Show Time and data using Data annotation

+0

Sorry, aber ich brauche das deutsche Format. Frage aktualisiert –

Verwandte Themen