我正在使用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)
答案 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
属性装饰EndDate
和DisplayFormat
:
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime StartDate{ get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime? EndDate{ get; set; }
将为您神奇地处理空值。