DateTime给了我" 01/01/0001 12:00:00 AM"而不是实际的日期

时间:2012-07-16 04:28:14

标签: c# asp.net-mvc

我正在使用MVC 4,我有一个接受两个日期的表单字段。一个用于登记,另一个用于结账。这堂课非常基础:

public class date {
     public DateTime Checkin { get; set; }
     public DateTime Checkout { get; set; }
}

我使用的格式是mm / dd / yyyy,用户使用javascript日历输入签入日期,并使用jquery移动滑块调整结帐日期。但是,我似乎总能得到 “01/01/0001 12:00:00 AM”而不是实际日期。我给了我的同事解决方案,他们没有问题,即使它的代码完全相同。

是否有可以更改的设置或我的视觉工作室搞砸了?

3 个答案:

答案 0 :(得分:2)

您是否拥有分配这些属性的代码?这是DateTime的默认值,因此无论应该分配什么,都可能根本不执行。 date是模特吗?如果您依赖于mvc模型绑定器,请确保控制器操作接受类型为date的参数。 (也许可以考虑改善名称)

答案 1 :(得分:1)

您显示的类会将CheckinCheckout初始化为DateTime.MinValue,即01/01/0001上午12点。

您不会显示任何从初始化值更改该值的代码。

据推测,从UI到模型的绑定是不正确的。您必须发布更多代码才能准确诊断出错误。建议您在控制器中发布操作,您可以从UI接受新值。

有关使用DateTime作为控制器操作的参数可能出错的指导,请参阅此类似帖子:

How do I pass a datetime value as a URI parameter in asp.net mvc?

答案 2 :(得分:0)

您在客户端的绑定无效,请查看您用于日期的输入名称,例如,检查下方,您可以获得datepicker的ID但属性 名称 应具有以下值:签入,其他结帐

<input id=datepicker name="Checkin" />
<input id=datepicker name="Checkout" />