MVC - 显示日期,没有日期可以为空的时间

时间:2016-06-23 15:15:42

标签: c# asp.net-mvc date

我正在使用ASP.Net和MVC并试图在没有时间的情况下显示日期。我有两个日期,一个StartDate和EndDate。我能够在没有时间的情况下显示StartDate,但是却无法使用EndDate。从我的阅读中,我相信这是因为它是一个可以约会的日期。我的EndDate定义为:

 public Nullable<System.DateTime> EndDate { get; Set; }

我的显示是:

 @Html.DisplayFor(modelItem => item.EndDate)

我可以通过定义一个新字符串来显示我的StartDate:

 public string ReturnStartDateForDisplay {
    get
    {
        return this.StartDate.ToString("d");
    }
 }

并显示:

 @Html.DisplayFor(model.Item => item.ReturnStartDateForDisplay)

2 个答案:

答案 0 :(得分:2)

你可以这样做

public string ReturnEndDateForDisplay
{
    get
    {
        return this.EndDate.HasValue ? this.EndDate.Value.ToString("d"): string.Empty;
    }
}

并像这样使用:

 @Html.DisplayFor(model.Item => item.ReturnEndDateForDisplay)

答案 1 :(得分:2)

您无需定义新的ReturnStartDateForDisplay属性。使用System.ComponentModel.DataAnnotations并使用StartDate属性装饰EndDateDisplayFormat

[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime StartDate{ get; set; }

[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime? EndDate{ get; set; }

将为您神奇地处理空值。