在MVC中格式化可为空的DateTime字段

Kev*_*vin -1 c# model-view-controller asp.net-mvc

我试图更改datetime表中可空字段的格式,以便以格式显示ddd dd mmm yyyy.我尝试过使用DateTime.ToString("ddd dd mmm yyyy),DateTime.Value.ToString("ddd dd mmm yyyy")但是都没有用过.

<td>
  @Html.DisplayFor(modelItem => item.DailyReportDate)
</td>
Run Code Online (Sandbox Code Playgroud)

任何意见,将不胜感激.

Det*_*iel 8

这里的问题是DateTime?没有ToString()接受格式化字​​符串的方法.要解决这个问题,您可以使用以下代码:

@string.Format("{0:ddd dd mmm yyyy}", item.DailyReportDate)
Run Code Online (Sandbox Code Playgroud)

如果DailyReportDatenull,则此代码将呈现为空字符串.否则,您将获得格式化的日期时间.Nullable.ToString方法文档中描述了此行为

希望有所帮助.


完全是你想要的,但这可以帮助你.

如果你有一个简单的DateTime(不可空),那么是一个很好的例子,说明如何实现你想要的.总而言之,您需要做的就是在DisplayFormatAttribute属性上设置属性

public class Model {
    [DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
    public DateTime? DailyReportDate { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像指出的那样使用它:

@Html.DisplayFor(item=> item.DailyReportDate)
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到文档DisplayFormatAttribute