Die Konvertierung von DateTime-format mit razor
Was ist falsch mit dem folgenden?
@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")
@Element.Datum zeigt 20/11/2005 12:00 Uhr ein.m und ich wollen anzeigen 20 Nov 2011
Kombinationen der verschiedenen Datum-format-Spezifizierer, die es gibt, können hier gefunden werden: msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
InformationsquelleAutor learning | 2011-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen:
oder verwenden Sie den
[DisplayFormat]
- Attribut auf Ihre view-Modell:und in Ihrem Blick einfach:
Für ein Textfeld verwenden Sie einfach "EditorFor" statt DisplayFor
Denken Sie daran, "ApplyFormatInEditMode = true" in Ihrem DisplayFormat definition-wenn Sie möchten, dass die Formatierung des Datums angewendet werden, um "EditorFor" () Elemente.
Ich brauchte, um diese für eine DateTime-Feld, um die eingebaute Datumsauswahl. Ohne das DisplayFormat annotation, die javascript-Konsole im browser zeigen würde, so etwas wie "Der angegebene Wert ist '1/1/1990 12:00:00' entspricht nicht dem erforderlichen format 'yyyy-MM-dd'." Ich hatte den DataFormatString und setzen ApplyFormatInEditMode, gilt für den Fehler Weg zu gehen und der Wert korrekt angezeigt, wenn mit "EditorFor" in meiner MVC-Ansicht.
Dies funktioniert für mich, aber ich weiß nicht - ich habe das Gefühl, ich bin gegen die Trennung von Bedenken, die durch die Anwendung der Logik auf format ein Datum (eine Präsentation betreffen) in das Modell über ein Attribut. Ich verstehe, das ist, wie Microsoft erwartet, dass dies zu arbeiten, aber es scheint nur Daten anzeigen, formatieren sollten isoliert werden, um die Aussicht und das Modell sollte einfach ein Modell sein.
InformationsquelleAutor Darin Dimitrov
Dies ist Lösung:
Bevor ToString() verwenden Wert.
dieser code ist richtig, aber wenn das Datum Spalte null ist, wird dieser Fehler schmeißen, so versuchen Sie dieser
Stom ist richtig, wenn Sie null-Werte werfen Sie den Fehler, danke für den link
.Wert hat den trick.
Genau das, was ich suchte
InformationsquelleAutor Miroslav Holec
Versuchen, diese in MVC 4.0
Ich würde davon ausgehen das downvote wurde durch diese Lösung die Formatierung des Datum "dd/MM/yyyy" statt "dd MMM yyyy" - format, dass die OP angefordert
Dieser sollte dann die gewählte Antwort. Ich habe versucht, die anderen und keiner arbeitete. thx.
InformationsquelleAutor Nick
[DisplayFormat] Attribut ist nur in der "EditorFor" /DisplayFor, und nicht durch die rohe HTML-APIs wie TextBoxFor. Ich habe es zu arbeiten, indem Sie die folgenden,
Modell:
Anzeigen:
Ausgabe:
30/12/2011
Weiterführender link:
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx
InformationsquelleAutor Diganta Kumar
Code unten wird Ihnen helfen,
InformationsquelleAutor Anjan Kant
Für Rasiermesser legen Sie die Datei DateTime.cshtml in Views/Shared/EditorTemplates Ordner. DateTime.cshtml enthält zwei Zeilen und erzeugt ein Textfeld mit einem Datum formatiert 9/11/2001.
Anthony Griggs, fühle ich mich ya cuz. Froh, zu teilen den Schmerz, so dass wir alle gewinnen könnten, --6 ½ Jahre später!
InformationsquelleAutor Jules Bartow
Im Allgemeinen, die SCHRIFTLICHEN Monat ist entronnen wie MMM, das 4-stellige Jahr JJJJ, so dass Ihr format-string sollte so Aussehen "dd MMM yyyy"
InformationsquelleAutor flq
War ich nicht in der Lage, diese arbeiten ausschließlich auf der Grundlage der Vorschläge oben. Einschließlich der DataTypeAttribute
[DataType(DataType.Date)]
schien zu lösen mein Problem finden Sie unter:Modell
Ansicht
HTH
InformationsquelleAutor Fraze
Für alle die gegebene Lösung, wenn Sie versuchen, diese in einen modernen browser (wie FF), und Sie haben die richtige Modell
mvc(5) wil render (die Typ der Eingang auf Datum basiert auf Ihrem Datum-Einstellungen in Ihrem Modell!)
Und der browser wird zeigen,
Dieses Problem zu beheben, müssen Sie ändern Sie die Typ zu text statt Datum (auch wenn Sie wollen, dass Ihr benutzerdefinierter Kalender)
InformationsquelleAutor Bunkerbuster