DisplayFormat Dataannotation nicht funktioniert
Habe ich folgende dataannotation in meiner model-Klasse:
[Required(ErrorMessage = "Required")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime DateOfBirth { get; set; }
und wenn ich Folgendes in meinem Blick, ich dont bekommen, Validierungs-Fehler:
<tr>
<td>@Html.LabelFor(x => x.DateOfBirth, new { @class = "lbl" }, "Date Of Birth") </td>
<td>@Html.TextBoxFor(x => x.DateOfBirth, new { @class = "w100 _dob" })
<br>@Html.ValidationMessageFor(x => x.DateOfBirth)
</td>
</tr>
Können Sie bitte deuten auf die Lösung ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
DisplayFormat
Attribut hat nichts zu tun mit der Validierung. Es wird nur verwendet, formatieren Sie den Wert, wenn angezeigt, auf einen Blick. Wenn Sie möchten, um zu überprüfen, dass der Wert, der eingegeben wird, durch den Benutzer in das entsprechende Eingabefeld haben Sie zum schreiben eines benutzerdefinierten Modells binder.Und durch die Art und Weise der DisplayFormat Attribut wird verwendet in Verbindung mit Html."EditorFor" Helfer und es hat absolut keine Wirkung, die mit dem Html.TextBoxFor Helfer, die ist, was Sie verwenden:
Html.TextBoxFor
für eine der EF POCOs in einem Projekt an dem ich arbeite, dieDisplayFormat
richtig funktioniert. Aber wenn ich versuche zu verwenden die exakt gleichenDisplayFormat
auf eine identische Kopie dieses Feldes in ein edit-ViewModel, mit dem ich arbeite, wird das Feld verwendet die Standard-Anzeige der Formatierung. Das einzigartigeDisplayName
macht, ist es auch, wie ich weiß, dass es mit diesem Satz vonDataAnnotations
(d.h. ich angehängt 'VMTest' derDisplayName
). Dies könnte eine Folge der etwas bestimmtes in meinem Projekt, aber es war eine interessante Eigenart, die verursacht mir einige Verwirrung.Den LabelFor nicht eine überlastung der es erlaubt, die CSS können Sie die lambda oder Lambda-und der text.
Wenn ich entfernen Sie die "new { @class = "lbl" }" Teil, und führen Sie Ihren code, den ich bekommen Validierung arbeiten
fein.
Edit: Entschuldigung, mein Erster test war mit einem "EditorFor" und meine Maschinen die Kultur wurde auf UNS, so dass es funktionierte alles in Ordnung.
Können Sie die Globalisierung der Kultur in Ihrem webconfig, um die richtige Kultur verwendet, die die mm\dd\yyyy zB.
aber diese treten über die gesamte website (einschließlich das format zahlen, Datumsangaben, Währung, etc) so ist dies ein begrenzter Fall ist, dann könnte dies nicht die Lösung für dein problem.