日期时间值为空

本文关键字:时间 日期 | 更新日期: 2023-09-27 17:56:09

嘿,这有点难以解释,因为我什至不知道它是怎么发生的。我有一个日期选择器框,当页面加载时,该日期框设置为 null。一旦用户选择一个日期并单击提交按钮 - 页面正在重新加载并正常工作,但出现零的时间格式,日期如下所示:

2011/5/11 00:00:00

有没有办法摆脱帖子中的零或获取方法或任何可能的方法?

以下是我的代码在 aspx 页中的外观:

Begin Date: <%:Html.EditorFor(b => b.BeginDate)%><%:Html.ValidationMessageFor(b => b.BeginDate)%>
End Date: <%:Html.EditorFor(e => e.EndDate)%><%:Html.ValidationMessageFor(e => e.EndDate)%>

我的视图模型:

public DateTime? BeginDate { get; set; }
public DateTime? EndDate { get; set; }

这是基于达林的回答:

在视图模型中:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString ="{0:dd/MM/yyyy}")]
    public DateTime? BeginDate { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime? EndDate { get; set; }

在我的.aspx页面中:

Begin Date: <%:Html.EditorFor(b => b.BeginDate)%><%:Html.ValidationMessageFor(b => b.BeginDate)%>
End Date: <%:Html.EditorFor(e => e.EndDate)%><%:Html.ValidationMessageFor(e => e.EndDate)%>

日期时间值为空

您可以在视图模型上使用 DisplayFormat 属性:

public class MyViewModel
{
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime Date { get; set; }
}

在您的视图中,您将使用 EditorFor 帮助程序生成相应的输入字段:

@Html.EditorFor(x => x.Date)
现在,您可以使用相同的格式

将日期选择器附加到生成的输入,并且在提交表单时,它将为日期字段保留相同的格式。

我实际上能够在报告文件中控制它。 在我的 .rdlc 文件中,我在框中创建了一个表达式,我将向以下内容显示我的日期:

DateValue(Parameters!BeginDate.Value)

这也消除了零出现在我的文本框中。

感谢大家的帮助