35 Stimmen

Datum bei Bindung formatieren (ASP.NET MVC)

In meiner ASP.net MVC-Anwendung habe ich eine Ansicht, die wie folgt aussieht:

...
<label>Due Date</label>
<%=Html.TextBox("due")%>
...

Ich verwende eine ModelBinder um den Beitrag an mein Modell zu binden (die Eigenschaft due ist von DateTime Typ). Das Problem ist, wenn ich "01/01/2009" in das Textfeld eingebe und der Beitrag nicht validiert wird (weil andere Daten falsch eingegeben wurden). Das Bindemittel füllt es mit dem Datum wieder auf und Zeit "01/01/2009 00:00:00 ".

Gibt es eine Möglichkeit, dem Binder mitzuteilen, dass er das Datum korrekt formatieren soll (z. B. ToShortDateString() )?

0 Stimmen

Das habe ich gestern auch schon erlebt. Ich wünschte, sie hatten eine Überlastung, die Sie in einem Format-String übergeben lassen.

0 Stimmen

Ich denke, die hier vorgeschlagene Lösung ist sauberer: stackoverflow.com/questions/8089316/

0voto

Krushna Punkte 26

Versuchen Sie dies

<%:Html.TextBoxFor(m => m.FromDate, new { @Value = (String.Format("{0:dd/MM/yyyy}", Model.FromDate)) }) %>

0voto

user2887440 Punkte 51

MVC4 EF5 View Ich habe versucht, ein Feld mit dem heutigen Datum vorzuladen und es dann an die Ansicht zur Genehmigung zu übergeben.

ViewModel.SEnd = DateTime.Now    //preload todays date  
return View(ViewModel)           //pass to view

In der Ansicht ließ mein erster Code eine Bearbeitung zu:

@Html.EditedFor(item.SEnd)        //allow edit

Später habe ich es so geändert, dass nur das Datum angezeigt wird, der Benutzer kann es nicht ändern, aber das Absenden löst den Controller savechanges aus

 <td>
 @Html.DisplyFor(item.SEnd)       //show no edit
 </td>

Als ich zu DisplayFor wechselte, musste ich dies hinzufügen, um sicherzustellen, dass der vorgeladene Wert an den Controller zurückgegeben wurde. Ich muss auch HiddenFor's für jedes Feld im Viewmodel hinzufügen.

    @Html.HiddenFor(model => model.SEnd)     //preserve value for passback.

Es hat eine Weile gedauert, bis ich das herausgefunden habe.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X