关于c#:模型属性格式化

Model property formatting

我有一个带有DateTime属性的模型:

1
2
[DisplayName("Updated")]
public DateTime lastUpdatedDate { get; set; }

目前,我认为我错误地处理了视图中日期时间的格式。

1
2
3
4
<tr>
    <td>@Html.LabelFor(m=>m.lastUpdatedDate)</td>
    <td>@Html.Label(Model.lastUpdatedDate.ToLongDateString())</td>
</tr>

我确信这是错的。 首先,我应该在模型中进行格式化,并返回字符串(在用于显示日期的模型中 - 更新模型需要控件的DateTime类型)? 但它变得复杂 - 时区。 我应该在get模型中操纵日期时间的值(基于用户在注册时选择的时区); ..东西? (叫什么?吸气鬼?呵呵)。

在学习MVC的同时,尝试使我的代码更友好。


如果你想优雅地处理时区,我建议你阅读这个答案。 要简化格式化模型中的DateTime属性,请使用[DisplayFormat]属性进行装饰:

1
2
3
[DisplayName("Updated")]
[DisplayFormat(DataFormatString ="{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime lastUpdatedDate { get; set; }

在你看来:

1
@Html.DisplayFor(x => x.lastUpdatedDate)