我正在尝试更改表格中可空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>
任何建议都将受到赞赏。
答案 0 :(得分:8)
这里的问题是DateTime?
没有接受格式化字符串的ToString()
方法。要解决此问题,您可以使用以下代码:
@string.Format("{0:ddd dd mmm yyyy}", item.DailyReportDate)
如果DailyReportDate
为null
,则此代码将呈现为空字符串。否则,您将获得格式化的日期时间。 Nullable.ToString Method documentation
希望有所帮助。
不是完全你想要什么,但这可以帮助你。
如果你有一个简单的DateTime
(不可空),那么here就是如何完成你想要的东西的一个很好的例子。总而言之,您需要做的就是在您的财产上设置DisplayFormatAttribute
属性
public class Model {
[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime? DailyReportDate { get; set;}
}
然后你可以像指出的那样使用它:
@Html.DisplayFor(item=> item.DailyReportDate)
您可以找到DisplayFormatAttribute
here
答案 1 :(得分:0)
.ToString()总是提出&#34;对象引用未设置为对象的实例&#34;因为此方法需要非null对象。你必须使用像这样的if else
@if (modelItem => item.DailyReportDate != null)
{
//add format
}
else
{
@Html.DisplayFor(modelItem => item.DailyReportDate)item.Amount)
}
}