2017-12-11 3 views
0

Ich habe meine aktuellen Daten Anmerkung alsmvc Ansicht Datumsanzeigeformat

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

Aus meiner Sicht:

@Html.DisplayFor(item=> item.CreatedOn) 

Aber mein Datum erscheint als gerade: 11 12 2017 meiner Ansicht nach insteaed von 11/12/2017. Was hat meine / gegessen? Alles was ich vergessen habe einzuschließen?

+1

Wie wäre es für gehen 'ToString()' Methode stattdessen? '@ CreatedOn.ToString (TT/MM/JJJJ)' – Valkyrie

+0

Haben Sie ein benutzerdefiniertes DisplayTemplate für DateTime verwendet? –

+0

Der Code, den Sie angezeigt haben, generiert '11/12/2017'. Wenn es nicht für dich funktioniert, dann hast du anderen Code, den du uns nicht gezeigt hast, verursacht das Problem –

Antwort

0

Es scheint alles läuft auf Culture info. Wie es steht zur Zeit scheint es nicht wie wir CultureInfo in DisplayFormat angeben können, so endete ich eine wiederverwendbare Hilfsmethode definieren up:

public static string FormatDate(this IHtmlHelper helper, DateTime date) 
{ 
    var formattedDate = string.Format(CultureInfo.InvariantCulture, "{0:dd/MM/yyyy}", date); 
    return formattedDateWithTime; 
} 

und meiner Ansicht nach:

@Html.FormatDate(Model.CreatedOn) 
1

Im Format-String, die / in einfachen Anführungszeichen wickeln, so dass Ihr Modell wie folgt aussehen sollte:

[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}")] 
public DateTime CreatedOn { get; set; } 

Wenn auf der Seite dargestellt, ist es das gewünschte Format verwendet.

Die hat eine Bemerkung über die Formatierung von Daten, aber nichts über dieses Problem der Formatierung Forward-Schrägstriche erwähnt. Ihre vorgeschlagene Lösung über die Einstellung funktionierte nicht für mich. Ich fand die Lösung in dem alternativen Vorschlag auf the answer for this similar question.

+0

@StephenMuecke, Das ist ein bisschen eine dramatische Aussage :-) Ich machte eine einfache Beispiel-MVC-Anwendung mit dem Code OP veröffentlicht, und verifiziert, dass ich das Problem reproduzieren konnte. Dies hat das Problem gelöst. Es muss einige Einstellungen geben, die das unterschiedliche Verhalten von DisplayFormat/DataFormatString verursachen. Ich habe sicherlich keine andere 'DisplayTemplate' in meinem leeren MVC-Projekt eingerichtet. –