DateTime.Now仅在我将其设置为数据库中的对象时给出了日期

时间:2014-01-06 23:37:12

标签: c# asp.net-mvc-4 datetime entity-framework-5

我在视图中使用@DateTime.now来保存当前日期但不知何故我无法将当前日期和小时设置为我的对象,它不会节省小时/分钟/秒。它会保存与@DateTime.Today相同的数据。它只是保存为

  

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>
}

当我在视图中调用@DateTime.Now时,它会显示正确的值。 我试图将它转换为字符串(通过使对象PostDate也字符串)但我仍然得到相同的问题。 我缺少什么?

2 个答案:

答案 0 :(得分:2)

可能表现得很奇怪,因为你没有在你的value属性周围添加引号。换到这个。

<input type="hidden" name="PostDate" value="@DateTime.Now" />

正如@JohnH所说,这也有效

@Html.Hidden("PostDate",DateTime.Now)

答案 1 :(得分:0)

当我遇到这个问题时,我意识到这是因为在SQL中,我在表的设计中选择了“date”而不是“datetime”。数据库无法接受时间值,因为它配置错误。更改表定义以适应完整的“日期时间”。