MVC4 has solved this problem by adding a new TextBoxFor
overload, which takes a string format parameter. You can now simply do this:
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}")
There’s also an overload that takes html attributes, so you can set the CSS class, wire up datepickers, etc:
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}", new { @class="input-large" })