Cómo utilizar un formato de cadena ShortDate con Html.TextBoxFor

Al usar Entity Framework con MVC2, tengo una serie de cuadros de texto de fecha, que quiero mostrar datos del modelo en un formato de fecha corta, pero tengo que usar Html.TextBoxFor para que funcione el código de actualización (después de haber intentado usar HTML En el cuadro de texto, los datos nunca se guardan en el modelo.

 model.Item.Date, String.Format("{0:d}", Model.Item.Date))%> 

He intentado manipular la expresión de formato de cadena y he agregado metadatos a una clase parcial asignada a la clase de modelo de Entity Framework, sin embargo, aún obtengo los siguientes datos al rellenar mis cuadros de texto en el formulario:

 01/01/2011 00:00:00 

más bien que

 01/01/2011 

 <%: Html.EditorFor(model => model.Item.Date) %> 

Y en su modelo de vista :

 [DataType(DataType.Time)] [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")] public DateTime Date { get; set; } 

ACTUALIZAR:

Ejemplo completo:

Modelo:

 public class MyModel { public Item Item { get; set; } } public class Item { [DataType(DataType.Time)] [DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")] public DateTime Date { get; set; } } 

Controlador:

 public class HomeController : Controller { public ActionResult Index() { return View(new MyModel { Item = new Item { Date = DateTime.Now } }); } } 

Ver:

 <%: Html.EditorFor(model => model.Item.Date) %>