Eingabe mit Datum-format einstellen von ViewModel-und html-class-Attribut
Arbeite ich mit razor view engine in asp.net mvc3.
Nun, ich brauche einen Eingang für einen DateTime
was angezeigt werden soll der Wert in einem festen format (sagen dd-MMM-yyyy
). Also ich kann:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MMM-yyyy}")]
public DateTime StartDate { get; set; }
Und in der Ansicht:
@Html.EditorFor(model => model.StartDate)
Aber ich brauche, um eine Klasse in der Eingabe. Ich denke, das ist nicht möglich in EditorFor
.
So könnte ich
@Html.TextBoxFor(model => model.StartDate, new { @class = "Date" })
Aber das display-format funktioniert nicht in diesem Fall.
Model
null sein kann. So,
@Html.TextBox("StartDate", string.Format("{0:dd-MMM-yyyy}", Model.StartDate))
werfen NullReferenceException
.
warum der erste nicht funktioniert zu Klasse hinzufügen???
Vielen Dank für die
@Html.TextBoxFor(model => model.StartDate, new { @class = "Date" })
Können Ihre Datum-Wert null zurück, ich denke die Ausnahme ist, weil Ihr Datum kann null seinVielen Dank für die
ApplyFormatInEditMode
. Ich vermisse, dass die parameter.
InformationsquelleAutor Tajkia Rahman Toma | 2011-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
ophelia ' s Weg ist, eine schnellere version von mir. Aber dieser Weg ist nützlich, wenn du gehst zu haben ein paar date-Felder in Ihrer Anwendung. Das ist also die Art, wie ich es zu tun:
-> In Ihre Projektmappen-explorer mit der, erstellen Sie einen Ordner innen Gemeinsamen genannt "EditorTemplates"
-> dort fügen Sie eine neue (nicht stark typisiert) Teilansicht. Nennen Sie es "
DateTime
".-> Öffnen Sie diese Ansicht, und entfernen Sie alle code in es, und werfen Sie den folgenden code in es:
-> In Ihre ViewModel, dein Feld "Datum" sollte wie folgt sein:
-> In Ihre Hauptansicht, und jede Ansicht, die Sie verwenden möchten, ein Datum-Feld, können Sie einfach
EditorFor
auf dem Grundstück, etwa so:Können Sie eine Initialisierung des date-Feld in Ihrem controller oder ein default-Datum in der viewmodel-Konstruktor.
Tolle Antwort, wenn Sie nicht sogar brauchen, die DateTime-EditorTemplate, es sei denn, Sie sind das hinzufügen von benutzerdefinierten Klassen für DateTime "EditorFor". Sie brauchen nur [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yy}")] in deinem ViewModel oder Model-und @Html."EditorFor" (model => Modell.MyDateTime) werden formatiert, wie man es definiert, die in der DisplayFormat Attribut.
ja. Wie dieses: stackoverflow.com/a/7555471/769083
InformationsquelleAutor jzm
Ich benutze das und die gut funktioniert:
Hoffe das ist was du meinst/brauchst 🙂
InformationsquelleAutor shennyL