Asp.net mvc 3 DateTime出现问题,显示为00:00:00
我有我的数据库,当我注册用户时,它有一个生日值的日期时间类型 当我收到我的数据后,要编辑注册表,我的剃须刀如下:Asp.net mvc 3 DateTime出现问题,显示为00:00:00,asp.net-mvc-3,datetime,c#-4.0,razor,Asp.net Mvc 3,Datetime,C# 4.0,Razor,我有我的数据库,当我注册用户时,它有一个生日值的日期时间类型 当我收到我的数据后,要编辑注册表,我的剃须刀如下: @Html.TextBoxFor(model => model.Birthdate) 日期显示如下:1983年5月28日00:00:00 显然,我只想要生日。在我的控制器中,我有: User userset = db.User.Find(id); return View(userset); 很简单。。。有人能帮我解决这个问题吗?在模型的属性上方设置DisplayFormat
@Html.TextBoxFor(model => model.Birthdate)
日期显示如下:1983年5月28日00:00:00
显然,我只想要生日。在我的控制器中,我有:
User userset = db.User.Find(id);
return View(userset);
很简单。。。有人能帮我解决这个问题吗?在模型的属性上方设置DisplayFormat数据注释
public class User
{
[DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
public DateTime Birthdate { get; set; }
...
}
然后,不要使用(…)的@Html.textbox
而使用(…)的@Html.EditorFor
有关更多详细信息,请参阅
如果您已经使用EF生成了数据模型,那么您可以简单地为您的类创建一个元类来应用数据注释。例如,如果我的db文件名为MyDB.edmx
,则创建名为MyDB.cs
的好友类文件。然后在里面,我将通过向User
类附加元数据类并在元类中指定数据注释来扩展该类:
[MetadataType(typeof(UserMetaData))]
public partial class User{ }
public class UserMetaData
{
[DisplayFormat(DataFormatString = "{0:dd/MM/yy}", ApplyFormatInEditMode = true)]
public DateTime Birthdate { get; set; }
}
请参阅“但是如果我们使用图形工具进行ORM映射会怎么样?”一节。jQuery中的DatePicker是从用户处接收日期输入的更好方法。它特别有助于避免各种日期格式的混淆
有关的详细信息:您可以使用
Html.TextBox
而不是Html.TextBoxFor
执行类似操作
@Html.TextBox("Birth date", String.Format("{0:dd/MM/yyyy}", Model.Birthdate))
谢谢@link664,但我不能这样做,我有为数据库上下文类生成的代码,它不接受将您显示的这一行放在其中。。。还有其他方法吗?您是如何使用实体框架生成数据库上下文类的?我导入了System.ComponentModel.DataAnnotations;要在我生成的模型类中使用,是的,我使用EF生成,我发布了[DisplayFormat(DataFormatString=“{0:dd/MM/yy}”,ApplyFormatInEditMode=true)],正如您在生日行上建议的那样,但它一直不起作用……您是创建了如上所述的buddy类,还是直接编辑生成的实体框架文件?Hi@link664,我试着把所有这些代码发布到我的App.cs文件中,正如你所说的那样,但没有成功。我试图将User.cs的第一行移到App.cs类中,并将其余部分保留在App.cs类中,但也没有成功,因为我是MVC3和Entity Framework的新手,我不知道我在哪里犯了错误……你的方法似乎很简单,但在这种情况下,我的TextBoxFor content将与此方法混合使用。如何在控制器中获取这些数据?