日期时间值为空

Posted

技术标签:

【中文标题】日期时间值为空【英文标题】:DateTime Value to null 【发布时间】:2011-08-22 23:49:41 【问题描述】:

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

5/11/2011 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; 

这是基于达林的回答:

在 ViewModel 中:

[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)%>

【问题讨论】:

看看这个;它在 WPF 中,虽然 ***.com/questions/3819832/… 在我的 viewModel 中,我的日期是这样显示的:public DateTime? BeginDateget;set; 公共日期时间?结束日期get; set; 我的 html 标记是:开始日期: b.BeginDate)%> b.BeginDate)%> 结束日期: e.EndDate)%> e.EndDate)%> @Splendor - 感谢您的链接,我会尝试一下,看看是否可以应用它。谢谢 【参考方案1】:

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

public class MyViewModel

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

在您看来,您将使用 EditorFor 帮助器生成相应的输入字段:

@Html.EditorFor(x => x.Date)

现在您可以使用相同的格式将日期选择器附加到结果输入中,并且在提交表单时,日期字段的格式将保持相同。

【讨论】:

我还能保持我的日期时间值为空吗?像日期时间?日期get;set 感谢您的回答,但由于某种原因,我在单击提交按钮后仍然显示零:(我不确定原因可能是什么。我有日期,以便我可以是 null 并且作为参数在不同的地方作为 null 会以任何方式影响它吗?再次感谢 @Amina,在更新您的问题并显示视图模型的外观后,我看不到用 [DisplayFormat] 属性装饰的 BeginDateEndDate 属性,就像我的回答一样。 对不起,我发布了我开始的原始内容 - 我将继续发布编辑,添加您答案中的属性:)【参考方案2】:

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

DateValue(Parameters!BeginDate.Value)

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

感谢大家的帮助

【讨论】:

以上是关于日期时间值为空的主要内容,如果未能解决你的问题,请参考以下文章

日期时间变量为空

mybatis 怎么给日期赋默认值

在 bootstrap-datepicker 中将日期设置为最初为空

mysql中的默认日期?

如果字段值为空,则显示破折号

数据库的表“工作日期”字段默认值为系统当前日期的后一天 该怎么填