15
votes

i have a DateTime Field that must be shown in Edit view

@Html.EditorFor( model => model.StartDate )

how can i use somthing like this ;

@Html.EditorFor( model => model.StartDate.ToShortDateString() )

or any custom function for changing the DateTime for view.

2

2 Answers

27
votes

Use the [DisplayFormat] attribute on your view model:

public class MyViewModel
{
    [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
    public DateTime StartDate { get; set; }

    ...

}

and then in your view simply:

@model MyViewModel
...
@Html.EditorFor(model => model.StartDate)
2
votes

I do it like this

<td>
    @{ 
       var date = item.PostDate.ToShortDateString();
     }
     @Html.DisplayFor(modelItem => date)
</td>