MVC3 - & Gestochen Ändern DateTime String von "mm/dd/yyyy 12:00:00 AM" "mm/dd/yyy" in eine Textbox
Ich versuche zu stoppen Sie die Zeit von der Anzeige in einen Geburtstags-Text-Feld, das verwendet DateTime
Mein Code: (ich bin mit dem Jquery DatePicker)
<label for="birthday">Birthday:</label>
@Html.TextBox("birthday", (Model.Birthday.ToString()), new { @class = "datePicker" })
Javascript:
$(document).ready(function () {
$('.datePicker').datepicker({ showOn: 'both', buttonImage: "/content/images/calendar-red.gif" });
});
Habe ich das Modell-setup für das Datum:
[DataType(DataType.Date)]
public DateTime? Birthday { get; set; }
Noch den Text in das Textfeld zeigt:
"8/21/2010 12:00:00"
Ich möchte Text in das Textfeld anzeigen als nur:
"8/21/2010"
Ich habe alles versucht, von:
@inherits System.Web.Mvc.WebViewPage<System.DateTime>
aber wird nicht lassen Sie mich tun, da bin ich @mit einem Modell
InformationsquelleAutor der Frage Timothy Green | 2011-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde verwenden Sie ein editor-template und Daten-Anmerkungen auf die Ansicht Modell, um die Formatierung, das macht die Aussicht auf viel sauberer:
und dann innerhalb deines view:
ist, und passen Sie den Wahlschalter, weil die textbox wird nicht mehr die
datePicker
Klasse:InformationsquelleAutor der Antwort Darin Dimitrov
Versuchen Sie dies:
@Html.TextBox("birthday", (Model.Birthday.Value.ToShortDateString()), new { @class = "datePicker" })
Seit Ihr DateTime ist
Nullable
Sie tun müssen.Value
bevor Sie Zugriff auf dieDateTime
Methoden.Beim Aufruf
ToString
auf eineDateTime
es wird geben Sie Datum + Uhrzeit. Also, Anstatt zu telefonierenToString
Sie verwenden möchten, entwederToString
mit Formatierung oderToShortDateString
.MSDN hat Folgendes zu sagen über ToShortDateString
InformationsquelleAutor der Antwort Filip Ekberg
War ich tatsächlich laufen in dieses problem mit Razor mit MVC 3. Ich landete mit zu erstellen, die ein DateTime-Partielle Klasse in Shared/EditorTemplates, um die Attribute, die ich brauchte.
Bisher ist meine Ansicht war:
@Html.TextBoxWithAttributesFor(m => m.To, new { @class = "text-box", @readonly = "readonly" })
aber dies hielt mir den TimeStamp. Auch wenn ich es versucht habe .Wert.DateTime oder einer anderen Arbeit um. Aber meine aktuelle, funktionierende Lösung ist:anzeigen:
partielle Klasse:
Habe ich diese Seite als eine zweite Quelle:
http://buildstarted.com/2010/09/10/overriding-displayfor-and-editorfor-to-create-custom-outputs-for-mvc/
InformationsquelleAutor der Antwort user864675
Wo Sie haben " - Modell.Geburtstag.ToString ()", die Sie brauchen, um es zu ersetzen mit " - Modell.Geburtstag.ToShortDateString()"
InformationsquelleAutor der Antwort Manicguitarist