Following viewmodel
used in a view is supposed to display a StartDate as, say 9/30/2015
. But it is displaying as 9/30/2015 12:00:00 AM
. How can I make it display without time while using DataAnnotaion
? I know I can use @Model.StartDate.ToString("MM/dd/yyy")
inside view to display date only. But that would mean you have to do it in every view that is using the following ViewModel
:
ViewModel:
...
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime StartDate { get; set; }
...
UPDATE
The corresponding model class of the above ViewModel
already has the following DataAnnotation
that correctly creates the data type in SQL Server table as Date
; and when you run a query on the corresponding table in SSMS
it correctly displays the StartDate column's data with dates only, say, 9/30/2015 etc.)
Model
...
[DataType(DataType.Date)]
public DateTime StartDate { get; set; }
...
StartDate in the sql db is in fact Date
only. Moreover, if I run a query on SSMS
it correctly returns date only.
There are two solutions to your problem. As per your comments, you are currently using @Model.StartDate
to display a date.
You can either do this:
@Model.StartDate.ToString("d")
Or, you can use a model based approach in your ViewModel and do this:
[DataType(DataType.Date)]
public DateTime StartDate {get;set;}
Then, in your view use:
@Html.DisplayFor(m => m.StartDate)