Ich verwende das DataType.Date-Attribut für mein Modell und ein EditorFor in meiner Ansicht. Dies funktioniert in Internet Explorer 8 und Internet Explorer 9 einwandfrei. In Google Chrome wird jedoch eine Datumsauswahl angezeigt. Statt des Werts wird nur "Monat / Tag / Jahr" in ausgeblendetem grauem Text angezeigt.
Warum wird der Wert in Google Chrome nicht angezeigt?
Modell:
[DataType(DataType.Date)]
public Nullable<System.DateTime> EstPurchaseDate { get; set; }
Aussicht:
<td class="fieldLabel">Est. Pur. Date</td>
<td class="field">@Html.EditorFor(m=>m.EstPurchaseDate)</td>
quelle
[DataType(DataType.Date)]
tun, damit ich nicht alle diese Eigenschaften separat markieren müsste, mit dem Risiko, einige zu verpassen?Fügen Sie in MVC5.2 Date.cshtml zum Ordner ~ / Views / Shared / EditorTemplates hinzu:
quelle
Als Ergänzung zu Darin Dimitrovs Antwort:
Wenn Sie nur möchten, dass diese bestimmte Zeile ein bestimmtes (vom Standard abweichendes) Format verwendet, können Sie in MVC5 Folgendes verwenden:
quelle
@
am Anfang,@Value = @Model.Property...
braucht das das noch@
? Meinst du nurnew { Value = Model.Property...
?In MVC 3 musste ich hinzufügen:
unter den Verwendungen beim Hinzufügen von Eigenschaften:
Vor allem, wenn Sie diese Eigenschaften wie ich in eine .edmx-Datei einfügen. Ich habe festgestellt, dass .edmx-Dateien diese Funktion standardmäßig nicht verwenden, sodass das Hinzufügen von nur Eigenschaften nicht ausreicht.
quelle
Wenn Sie
[DataType(DataType.Date)]
aus Ihrem Modell entfernen , wird das Eingabefeld in Chrome als gerenderttype="datetime"
und zeigt auch nicht die Datumsauswahl an.quelle
date
. Die Verwendungdatetime
als Workaround ist unangemessen, da die Daten nicht semantisch dargestellt werden.Ich hatte immer noch ein Problem damit, das Format JJJJ-MM-TT zu übergeben, aber ich habe es umgangen, indem ich die Datei Date.cshtml geändert habe:
quelle
string.Format("{0}/{1}/{2}")
zu bekommendd/mm/yyyy
Format, und es funktioniert gut, i Datenbank erste Methode verwendet , aber Displayformat , weiß nicht , warum , wenn ?, sowieso jemand versuchen brauchte nicht mit partieller Klasse arbeitete diese Methode, i didn‘Antwort auf MVC4 DataType.Date EditorFor zeigt in Chrome keinen Datumswert an, in IE in Ordnung
Im Modell müssen Sie folgende Art von Deklaration haben:
ODER
Sie müssen das folgende Attribut nicht verwenden:
Verwenden Sie in der Datei Date.cshtml diese Vorlage:
Habe Spaß! Grüße, Blerton
quelle
DisplayFormat
Attribut verwende 2) den Test ändere, um zu überprüfen, ob der Browsertyp Chrome ist, und dann@Html.EditorFor(m=>m.EstPurchaseDate)
3) sonst mache@Html.TextBox("EstPurchaseDate", dt.ToString("MM/dd/yyyy"))
Hinweis: Bei # 2 wäre eine bessere Überprüfung, wenn Der Browser versteht HTML5, aber ich weiß nicht, wie das geht.Wenn Sie die Kontrolle über das Format des Datums haben müssen (mit anderen Worten, nicht nur das Format JJJJ-MM-TT ist akzeptabel), können Sie auch eine Hilfseigenschaft vom Typ Zeichenfolge hinzufügen und dieser Eigenschaft einen Datumsvalidator hinzufügen und binden Sie an diese Eigenschaft auf der Benutzeroberfläche.
Und hier ist ein Datumsvalidator:
quelle