【问题标题】: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 中,虽然 stackoverflow.com/questions/3819832/…
  • 在我的 viewModel 中,我的日期是这样显示的:public DateTime? BeginDate{get;set;} 公共日期时间?结束日期{get; set;} 我的 html 标记是:开始日期: b.BeginDate)%> b.BeginDate)%> 结束日期: e.EndDate)%> e.EndDate)%>
  • @Splendor - 感谢您的链接,我会尝试一下,看看是否可以应用它。谢谢

标签: c# asp.net-mvc


【解决方案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)

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

感谢大家的帮助

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多