I have this attribute in my view model:
[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }
If I want to display the date, or populate a textbox with the date, I have these:
<%: Model.StartDate %>
<%: Html.TextBoxFor(m => m.StartDate) %>
Whenever the date is displayed, it's displayed like: 01/01/2011 12:00:00 AM
But I'd like to only display 01/01/2011
Is there a way to apply a display format with data annotations? I don't want to have to go to every instance where I display a date, and add some code to format it.
This question is related to
c#
asp.net
asp.net-mvc
data-annotations
Use this, but it's a complete solution:
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
After Commenting
// [DataType(DataType.DateTime)]
Use the Data Annotation Attribute:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
STEP-7 of the following link may help you...
http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html
Use EditorFor rather than TextBoxFor
If your data field is already a DateTime datatype, you don't need to use [DataType(DataType.Date)]
for the annotation; just use:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
on the jQuery, use datepicker for you calendar
$(document).ready(function () {
$('#StartDate').datepicker();
});
on your HTML, use EditorFor
helper:
@Html.EditorFor(model => model.StartDate)
That works for me
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
Try tagging it with:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
Apply DataAnnotation like:
[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
Did you try this?
[DataType(DataType.Date)]
In mvc 4 you can easily do it like following using TextBoxFor
..
@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })
So, you don't need to use any data annotation in model or view model class
set your property using below code at the time of model creation i think your problem will be solved..and the time are not appear in database.you dont need to add any annotation.
private DateTime? dob;
public DateTime? DOB
{
get
{
if (dob != null)
{
return dob.Value.Date;
}
else
{
return null;
}
}
set { dob = value; }
}
Source: Stackoverflow.com