我有一个具有DateTime属性的数据库模型。但是,此属性实际上是一个日期。在客户端上进行排序/筛选时,多余的时间导致了问题。许多表/客户端组件都有此问题。
我希望可以在模型级别修复此问题,并且仅在进行以下修改后才能检索“日期”部分。
private DateTime invoiceDate;
[Required]
public DateTime InvoiceDate { get => invoiceDate.Date; set =>invoiceDate = value; }
但是,这似乎不起作用。这样可能吗?
编辑:我发现C#允许在模型上使用更具体的DataType规范-https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-a-more-complex-data-model-for-an-asp-net-mvc-application
即
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime EnrollmentDate { get; set; }
但是,当我点击我的API时,我仍然可以获得完整的数据库信息
"InvoiceDate": "2019-06-14T00:00:00-07:00"
C#为什么不使用提供的额外规范来解决此问题?
编辑:
我还发现this helpful thread建议向该属性添加JSON转换器,但这也不能解决问题。时间仍在发送。
答案 0 :(得分:0)
您可以将Bind
与排除属性一起使用
[Bind(Exclude="InvoiceDate")]
public class YourModel{
}
答案 1 :(得分:0)
我最终通过OData请求修改使它起作用。我必须编辑字符串以将属性包装在data(prop)
中,然后必须编辑值以从javascript的DateTime.ToString yyyy-MM-dd