如何使用@ Html.DisplayFor将日期保存到数据库中

时间:2012-01-03 22:10:54

标签: c# asp.net asp.net-mvc-3 razor

大家好我是新来的这个地方我被推荐到这个网站。我的问题是我在asp.net2010中的MVC3 C#中有一个应用程序,这个应用程序添加,编辑和删除数据库中的文本,我的下一步是创建一种允许输入自动日期的方法。目前这是手动完成的,当用户点击链接创建新并输入他/她手动输入日期的详细信息我想要一种方式,当用户点击链接创建新时,日期自动为他们所以他们只是按回车。

@Html.EditorFor(model => model.Posted) I have tried to edit this so it shows this:

<%: Html.TextBox("date", DateTime.Now.ToShortDateString()) %> /*This code does replace the @Html.EditorFor link above and does not save the date and just shows it a text box"*/.

@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())

@{var val = item.MyDateTime.ToLongDateString();
  Html.DisplayFor(modelItem => val);
}

这些方法都不起作用或者你能帮助我,谢谢你

我多年来一直在谷歌看到这里和雅虎没有运气我知道它与这个@ Html.EditorFor(model =&gt; model.Posted)有关,因为当我点击创建新的它允许用户手动输入日期。

感谢您的时间。如果您需要有关代码Ect的更多信息,请告诉我

1 个答案:

答案 0 :(得分:1)

您可以使用[DisplayFormat]属性修饰视图模型Posted属性,如下所示:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime Posted { get; set; }

现在,在您的视图中,您使用:

@Html.EditorFor(model => model.Posted)

您将获得所需的格式。只要显示日期而不显示输入字段,您可以使用DisplayFor帮助程序,它仍然会遵循您在视图模型上定义的所需格式:

@Html.DisplayFor(model => model.Posted)