2017-01-11 7 views
-5

Ich habe Probleme mit der Anzeige des Datumsformats.Handhabung von DateFormat in MVC

Annahme: Ich habe keine Kontrolle über das Datumsformat des Benutzers. Daher können wir das Format in unserem Code nicht reparieren oder hartkodieren, sonst denke ich, dass es nicht funktioniert, wenn das Datumsformat, das wir in unseren Code eingegeben haben, nicht mit dem Datumsformat des Benutzers (oder kulturellen Einstellungen) übereinstimmt.

Um den Benutzern zu helfen, möchte ich ein Datumsformat in eine Benutzeroberfläche einfügen, so dass der Benutzer über das Datumsformat klar ist. Für Momentan, Anzeige Geburtsdatum (TT/MM/JJJJ) eher nur Geburtsdatum. Also, ein Benutzer wird 01/10/2010 nicht eingeben, wenn das tatsächliche Geburtsdatum der 10. Januar 2010 ist (sollte am 10. Januar 2010 eingegeben worden sein). Ebenso, wenn wir auflisten, wenn die Benutzeroberfläche nur 01/10/2010 ohne Datumsformat sagt, ist es für den Benutzer unklar, ob es der 10. Januar oder der 1. Oktober ist. Daher möchten wir ein Datumsformat anzeigen. Das Gleiche gilt für die Bearbeitung. Wir möchten, wenn möglich, ein Datumsformat anzeigen.

Ich verwende das gleiche Ansichtsmodell für alle drei Ansichten (Erstellen, Liste, Bearbeiten).

habe ich die folgenden für die Ansicht Modell

[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)] public DateTime DateOfBirth { get; set; }

und listet nach korrekt mit dem Format definiert (und unabhängig von der kulturellen Einstellung des Benutzers). Bei der Bearbeitung wird jedoch kein Datum angezeigt (das vorhandene Geburtsdatum wird nicht angezeigt), wenn das festgelegte Datumsformat nicht mit den kulturellen Einstellungen des Benutzers übereinstimmt.

Mein Ziel ist es, ein Datumsformat (beliebiges Datumsformat) anzuzeigen, um die Verwirrung beim Auflisten oder Eingeben eines Wertes zu vermeiden.

Was ist der beste der Griff ist es (wenn man bedenkt, dass es keine Kontrolle über kulturelle Einstellungen des Benutzers)

+1

Was ist Ihre Frage? – CodeCaster

+0

Wenn ich nicht falsch liege, benötigen Sie einfach ein Kalender-Steuerelement, das an ein Textfeld angehängt ist, das ein vordefiniertes Format verwendet und das gleiche Format in einem Textfeld anzeigt, wenn das Datum nicht ausgewählt ist. Sie können versuchen, jQuery Kalender verwenden –

Antwort

0

Sie selbst organisieren können

MODEL

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

Blick

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

Warum ist die erste Zeile in Großbuchstaben? Und was soll das heißen? – Amy

+0

Was verstehst du? – sedevel

+0

Was bedeutet die erste Zeile? Erklären oder erarbeiten und ich werde meinen Downvote rückgängig machen. – Amy

Verwandte Themen