Ich habe dieses Attribut in meinem Ansichtsmodell:
[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }
Wenn ich das Datum anzeigen oder ein Textfeld mit dem Datum füllen möchte, habe ich folgende:
<%: Model.StartDate %>
<%: Html.TextBoxFor(m => m.StartDate) %>
Wann immer das Datum angezeigt wird, wird es wie folgt angezeigt: 01/01/2011 12:00:00
Aber ich möchte nur anzeigen 01.01.2011
Gibt es eine Möglichkeit, ein Anzeigeformat mit Datenanmerkungen anzuwenden? Ich möchte nicht zu jeder Instanz gehen, wo ich ein Datum anzeigt, und etwas Code hinzufügen, um es zu formatieren.
Versuchen Sie es mit:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Hast du das probiert?
[DataType(DataType.Date)]
In mvc 4 können Sie dies ganz einfach mit TextBoxFor
tun.
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
Sie müssen also keine Datenanmerkungen im Modell oder in der Ansichtsmodellklasse verwenden
Wenn Ihr Datenfeld bereits ein DateTime-Datentyp ist, müssen Sie [DataType(DataType.Date)]
nicht für die Annotation verwenden. benutz einfach:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
verwenden Sie in der jQuery datepicker für Ihren Kalender
$(document).ready(function () {
$('#StartDate').datepicker();
});
in Ihrem HTML-Code verwenden Sie EditorFor
helper:
@Html.EditorFor(model => model.StartDate)
Wenden Sie DataAnnotation wie folgt an:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
Verwenden Sie dies, aber es ist eine vollständige Lösung:
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
Verwenden Sie EditorFor anstelle von TextBoxFor
Nach dem Kommentieren
// [DataType(DataType.DateTime)]
Verwenden Sie das Data Annotation-Attribut:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
STEP-7 des folgenden Links kann Ihnen helfen ...
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
setzen Sie Ihre Eigenschaft mit dem folgenden Code zum Zeitpunkt der Modellerstellung. Ich denke, Ihr Problem wird gelöst .. und die Zeit wird nicht in der Datenbank angezeigt. Sie müssen keine Anmerkungen hinzufügen.
private DateTime? dob;
public DateTime? DOB
{
get
{
if (dob != null)
{
return dob.Value.Date;
}
else
{
return null;
}
}
set { dob = value; }
}
Das ist für mich in Ordnung
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]