2010-09-21 51 views
4

使用Entity Framework與MVC2,我有一系列日期文本框,我想以短日期格式顯示模型中的數據,但我必須使用Html。 TextBoxFor爲了更新代碼的工作(嘗試使用HTML.Textbox數據永遠不會被保存到模型)。如何使用ShortDate字符串格式與Html.TextBoxFor

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

我試圖操縱字符串格式的表達,並增加元數據映射到實體框架模型類的部分類,但我仍然得到以下填充我的文本框的形式呈現:

01/01/2011 00:00:00 

而不是

01/01/2011 

回答

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

並在您視圖模型:

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

UPDATE:

完整例如:

型號:

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; } 
} 

控制器:

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

查看:

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

確定它正在工作。查看我的更新。 – 2010-09-21 08:59:11

相關問題