如何格式化Html.TextBoxFor中的DateTimeOffset?
我有一个基于Bootstrap 3和ASP.NET MVC 5的视图,用于编辑用户配置文件信息,但它在表单上以不正确的格式显示。
数据库是Neo4j,我正在使用Neo4jClient与.NET中的数据库进行交互。 Neo4jClient需要使用DateTimeOffset
对象而不是DateTime
对象来使用Json.NET的序列化程序传递给Neo4j的REST接口。 因此,我的模型使用DateTimeOffset对象来存储用户的生日。
这是我视图中的表单字段:
@Html.TextBoxFor(model => model.Birthday, new { @class = "form-control input-md datepicker", placeholder = "Birthday" }) Please enter your birthday
打印到表单时,日期格式如下:
M/dd/yyyy hh:mm:ss t -zzz
但是,它应该有这种格式,因为我们只需要日期部分:
MM/dd/yyyy
我已经尝试在model属性上使用DataFormatString注释,但它仍然没有以正确的格式显示:
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)] public DateTimeOffset Birthday { get; set; }
此注释是否仍适用于DateTimeOffset对象? 如何修复字符串格式?
这里回答: https : //stackoverflow.com/a/6140014/211747
简介: TextBoxFor
不尊重DataFormatString
,您需要使用EditorFor
,但是它不支持自定义HTML属性,因此您需要一个编辑器模板( Views\Shared\EditorTemplates\DateTimeOffset.cshtml
)。