日期时间值为空
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]
属性装饰的 BeginDate
和 EndDate
属性,就像我的回答一样。
对不起,我发布了我开始的原始内容 - 我将继续发布编辑,添加您答案中的属性:)【参考方案2】:
我实际上能够在我的报告文件中控制它。在我的 .rdlc 文件中,我在框中创建了一个表达式,我将显示我的日期如下:
DateValue(Parameters!BeginDate.Value)
这也消除了我的文本框中出现的零。
感谢大家的帮助
【讨论】:
以上是关于日期时间值为空的主要内容,如果未能解决你的问题,请参考以下文章