C# 现在,当我将其设置为数据库中的对象时,只提供日期
我正在使用C# 现在,当我将其设置为数据库中的对象时,只提供日期,c#,asp.net-mvc-4,datetime,entity-framework-5,C#,Asp.net Mvc 4,Datetime,Entity Framework 5,我正在使用@DateTime。现在在我的视图中保存当前日期,但不知何故,我无法为我的对象设置当前日期和小时,它不会保存小时/分钟/秒。它保存的数据与@DateTime相同。今天将显示。它只是保存为 2014-01-06 00:00:00 当日期为当前(正确)时,日期和小时设置为零 这是我的模型,没什么可看的,我不知道它怎么可能是错的 public class Posts { ... public DateTime PostDate { get; set;
@DateTime。现在在我的视图中
保存当前日期,但不知何故,我无法为我的对象设置当前日期和小时,它不会保存小时/分钟/秒。它保存的数据与@DateTime相同。今天将显示。它只是保存为
2014-01-06 00:00:00
当日期为当前(正确)时,日期和小时设置为零
这是我的模型,没什么可看的,我不知道它怎么可能是错的
public class Posts
{
...
public DateTime PostDate { get; set; }
...
}
下面是我如何将DateTime添加到视图中的模型:
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
[...]
<input type="hidden" name="PostDate" value=@DateTime.Now/>
<p>
<input type="submit" value="Create"/>
</p>
</fieldset>
}
@使用(Html.BeginForm()){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
[...]
}
当我调用@DateTime.Now
时,它会在视图中显示正确的值。
我试图将其转换为字符串(通过将objectPostDate
也转换为字符串),但仍然遇到同样的问题。
我遗漏了什么?可能行为怪异,因为您没有在值属性周围加引号。换成这个
<input type="hidden" name="PostDate" value="@DateTime.Now" />
当我遇到这个问题时,我意识到这是因为在SQL中,我在表的设计中选择了“date”而不是“datetime”。数据库无法接受时间值,因为它配置错误。更改表定义以适应完整的“日期时间”。数据库中列的数据类型是什么?看起来列类型是Date
,而不是datetime
。请向我们展示呈现的HTML。很好。也可能是这样。尽管如此,我还是建议使用Html.HiddenFor
/Html.Hidden
,而不仅仅是添加引号,因为它们将生成正确的输出,而不会引起麻烦。
@Html.Hidden("PostDate",DateTime.Now)