【发布时间】:2015-03-16 07:39:56
【问题描述】:
我有一个Timetable 模型,它目前只有两个属性,一个Id 和Date。是这样定义的:
public class Timetable
{
public int Id { get; set; }
[Required, Column(TypeName = "Date"), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime Date { get; set; }
}
然后我构建了一些基本的 CRUD 功能,并且感谢 DisplayFormat 注释,它允许我创建日期为 dd/MM/yyyy 格式的时间表。但是,当我编辑现有时间表时,应用程序会使用 01/01/2015 00:00:00 填充 Date 文本框(请参见屏幕截图)。
有没有办法让我的应用程序只使用日期,而不是日期和时间?
【问题讨论】:
-
如何生成 html -
@Html.EditorFor()或TextBoxFor()? -
Edit.cshtml 页面使用的是
@Html.EditorFor。 -
那么属性需要是
DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyInEditMode=true)]。请注意格式字符串——它将生成日期选择器的浏览器实现并将其显示在浏览器的文化中。另请注意,并非所有浏览器都支持它。 -
啊,完美。如果您将此添加为答案,我会接受。另外,命名参数实际上是
ApplyFormatInEditMode,它并没有为我浏览器的本地日期选择器创建date字段,我不得不为此添加DataType(DataType.Date)注解。
标签: asp.net entity-framework date asp.net-mvc-5