Formatieren Sie datetime in asp.net mvc 4

Wie kann ich das Format von datetime in asp.net mvc 4 erzwingen? Im Anzeigemodus wird angezeigt, wie ich möchte, im Bearbeitungsmodus jedoch nicht. Ich verwende displayfor und editorfor und wende formatineditmode = true mit dataformatstring = "{0: dd / MM / yyyy}" an. Was ich versucht habe:

Globalisierung in web.config (beide) mit meiner Kultur und meiner Kultur.Kultur und Kultur in application_start () ändernbenutzerdefinierte Modelbinder für datetime

Ich habe keine Ahnung, wie ich es erzwingen soll, und ich muss das Datum als TT / MM / JJJJ eingeben, nicht als Standard.

MEHR INFO: Mein Ansichtsmodell ist so

    [DisplayName("date of birth")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? Birth { get; set; }

in sicht benutze ich@Html.DisplayFor(m=>m.Birth) Das funktioniert aber wie erwartet (ich sehe die Formatierung) und gebe das Datum ein, das ich benutze@Html.EditorFor(m=>m.Birth) aber wenn ich versuche etwas wie 13/12/2000 einzugeben, scheitert es mit dem Fehler, dass es kein gültiges Datum ist (12/13/2000 und 2000/12/13 funktionieren wie erwartet, aber ich brauche TT / MM / JJJJ) .

Der benutzerdefinierte Modelbinder wird in application_start () aufgerufen. B / c Ich weiß nicht, wo sonst.

Verwenden<globalization/> Ich habe es mit versuchtculture="ro-RO", uiCulture="ro" und andere Kulturen, die mir TT / MM / JJJJ geben würden. Ich habe auch versucht, es pro Thread in application_start () festzulegen (es gibt hier viele Beispiele, wie man das macht)

Für alle, die diese Frage lesen werden: Es scheint, dass Darin Dimitrovs Antwort funktioniert, solange ich keine Kundenvalidierung habe. Ein anderer Ansatz ist die Verwendung einer benutzerdefinierten Validierung, einschließlich der clientseitigen Validierung. Ich bin froh, dass ich das herausgefunden habe, bevor ich die gesamte Anwendung neu erstellt habe.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage