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

C# 如何使用@Html.DisplayFor将日期保存到数据库中,c#,asp.net,asp.net-mvc-3,razor,C#,Asp.net,Asp.net Mvc 3,Razor,大家好,我是新来的这个地方,我被推荐到这个网站。我的问题是,我在asp.net2010的MVC3 C#中有一个应用程序,该应用程序添加、编辑和删除数据库中的文本,我的下一步是创建一种允许自动输入日期的方法。目前,当用户单击“新建”链接并输入详细信息时,这是手动完成的。他/她必须手动输入日期。我想要一种方式,当用户单击“新建”链接时,日期会自动显示在那里,因此他们只需按enter键 @Html.EditorFor(model => model.Posted) I have tried to

大家好,我是新来的这个地方,我被推荐到这个网站。我的问题是,我在asp.net2010的MVC3 C#中有一个应用程序,该应用程序添加、编辑和删除数据库中的文本,我的下一步是创建一种允许自动输入日期的方法。目前,当用户单击“新建”链接并输入详细信息时,这是手动完成的。他/她必须手动输入日期。我想要一种方式,当用户单击“新建”链接时,日期会自动显示在那里,因此他们只需按enter键

@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=>model.Posted)我已尝试编辑此文件,以便它显示以下内容:
/*此代码确实替换了上面的@Html.EditorFor链接,并且不保存日期,只显示一个文本框“*/。
@DisplayFor(modelItem=>item.MyDateTime.ToLongDateString())
@{var val=item.MyDateTime.ToLongDateString();
DisplayFor(modeleItem=>val);
}
这些方法都不管用,你能帮我吗谢谢

我已经在谷歌上到处找了很久了,雅虎没有运气,我知道这与@Html.EditorFor(model=>model.Posted)有关,因为当我点击create new时,它允许用户手动输入日期


感谢您抽出时间,如果您需要有关代码等的更多信息,请询问我。

您可以使用属性装饰视图模型
Posted
属性,如下所示:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime Posted { get; set; }
现在,在您的视图中使用:

@Html.EditorFor(model => model.Posted)
您将获得所需的格式。就只显示日期而不显示输入字段而言,您可以使用DisplayFor帮助程序,并且它仍将遵守您在视图模型上定义的所需格式:

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

我应该把你提供的第一行代码放在哪里?它是属于Models/AccountModels.cs文件还是控制器?我对此有点困惑?谢谢you@user1128756,它应该属于您的模型类。由于您使用的是Html.editorforhelper,因此您的视图对某些模型是强类型的。是的,这是正确的,但此模型屁股,我找不到它,它到底有没有下面的东西,在我的模型里裸露着,我的模型叫“新闻”“因此,它属于这些文件中的任何一个:Model1.context.tt、Model1.tt、NewsModel.edmx,因为这是我第一次听说一个我不熟悉的类。谢谢你的支持help@user1128756,不应将自动生成的域模型传递给视图。您应该使用视图模型。视图模型是您定义的类,包含视图所需的特定属性和格式。因此,在此视图中,您需要以给定格式设置日期的格式。因此,您定义了一个视图模型,其中包含一个
Posted
属性,如我的回答中所示进行修饰,然后让您的控制器操作查询数据访问层,以获取一个域模型,该域模型将转换为视图模型并传递给视图进行显示。那么,第一行代码将进入控制器?我不是说将自动生成的域模型传递给我的视图。你告诉我代码属于我的模型类。我问这些文件是不是我的模型类“Model1.context.tt,Model1.tt,NewsModel.edmx”,因为这些文件都在我的models文件夹中。我理解你所说的“@Html.DisplayFor(model=>model.Posted)”应该放在视图中,但是你在第一句话中写的代码应该放在哪里呢?非常感谢你的帮助