【问题标题】:How to use a ShortDate string format with Html.TextBoxFor如何在 Html.TextBoxFor 中使用 ShortDate 字符串格式
【发布时间】:2011-04-15 02:05:30
【问题描述】:
使用带有 MVC2 的实体框架,我有一系列日期文本框,我想以短日期格式显示模型中的数据,但我必须使用 Html.TextBoxFor 才能使更新代码工作(有尝试使用 HTML.Textbox 数据永远不会保存到模型中)。
<%: Html.TextBoxFor(model => model.Item.Date, String.Format("{0:d}", Model.Item.Date))%>
我已经尝试操作字符串格式表达式,并将元数据添加到映射到实体框架模型类的部分类中,但是我仍然在表单渲染时得到以下填充我的文本框:
01/01/2011 00:00:00
而不是
01/01/2011
【问题讨论】:
标签:
c#
asp.net
asp.net-mvc
entity-framework
asp.net-mvc-2
【解决方案1】:
<%: Html.EditorFor(model => model.Item.Date) %>
在您的视图模型上:
[DataType(DataType.Time)]
[DisplayFormatAttribute(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime Date { get; set; }
更新:
完整示例:
型号:
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) %>