我的视图模型有一个属性,如下所示:
[Editable(false)]
[Display(Name = "Date")]
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
public DateTime MovementDate { get; set; }
然而,标记
<td>
@Html.DisplayFor(modelItem => item.MovementDate)
</td>
将日期值呈现为2013/05/15 12:00:00 AM
。
我做错了什么?我的模型:
public class WithDateModel
{
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
public DateTime TheDate { get; set; }
public WithDateModel()
{
TheDate = DateTime.Now;
}
}
我的观点是:
@model ParkPay.WebTests.Models.WithDateModel
@Html.DisplayFor(m => m.TheDate)
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
渲染的内容:
2013/05/25 02:23:37 AM
发布于 2013-05-23 17:05:00
既然已经设置了[Editable(false)]
,为什么还要使用ApplyFormatInEditMode
?ApplyFormatInEditMode
所要做的就是格式化日期,如果您将日期放在文本框或其他内容中进行编辑,由于上述原因,您可能不会这样做。
我能够使用以下命令正确显示日期:
[DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}")]
public DateTime Date
{
get
{
return DateTime.Now;
}
set
{
Date = DateTime.Now;
}
}
在视图中(带有结果输出):
@Html.DisplayFor(x => x.Date) // 2013/05/23
<br />
@Model.Date // 23/05/2013 09:57:56
<br />
@Html.DisplayFor(x => Model.Date) // 2013/05/23
希望这能有所帮助。
发布于 2014-01-15 18:37:36
如果你不能让它在模型上工作,你可以在视图上尝试它。
@Html.TextBoxFor(m => m.ValidFrom, "{0:dd/MM/yyyy}", new {maxlength = 10})
发布于 2017-12-21 02:33:40
您必须将该类型注释为Date
[DataType(DataType.Date)]
https://stackoverflow.com/questions/16697872
复制相似问题