繁体   English   中英

实体框架中的DateTime

[英]DateTime in Entity Framework

我在使用代码优先的Entity Framework方法在前端正确显示(C#)DateTime /(LocalDB)Date类型时遇到问题。

StudentDetailsDTO模型类:

public int ID { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
[Column(TypeName = "Date"), DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime BirthDate { get; set; }
public string SID { get; set; }
public string Course { get; set; }
public string GroupName { get; set; }
public string Specialty { get; set; }

BirthDate列正常工作。 它以提供的格式返回日期(无时间),作为表中DateTime的替换形式。

但是,在前端,它仍与“ 详细信息”表中的“ T”属性一起显示给特定学生,好像该列中的“ Date类型无效。

如果我改用string数据类型,就不会有问题。 但是,我正在尽最大努力遵守适当的数据类型约定。

我是否需要更改控制器中的某些内容? HTML视图? 还是在Knockout.js中? 我已经尝试过在Stackoverflow上提供的一些解决方案,但是它们要么不起作用,要么我无法实现它们。

我是一个完全的新手,迷路了。 这么小的变化,那么多的问题。 对于所有可能的提示或解决方案,我将不胜感激。 感谢您的时间。

这取决于您如何呈现日期。

在剃须刀中,您可以使用:

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

或者,如果您正在使用Knockout渲染日期,则可以考虑一下moment.js,然后用View Model中的出生日期替换该日期。

moment('2013-01-01T00:00:00.000').format('YYYY-MM-DD')

您必须使用DataType属性装饰BirthDate使其起作用。

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime BirthDate { set; get; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM