【发布时间】:2019-12-09 06:47:08
【问题描述】:
所以我的视图中有一个对象的 IEnumerable 列表作为我的模型。该对象具有字符串、整数、布尔值和日期时间等字段。我想序列化该列表,但问题是除了日期时间之外的所有内容都正确完成,并且由于某种原因,它序列化为不正确的刻度数,导致当我在控制器中打印它时出现错误的日期。所以我有各种各样的日期,无论是 2019 年 6 月还是 7 月,它们都变成了 01/00/1900。这用于将 DataTable 条目导出到 Excel 工作表中。
我已尝试使用多种方法遍历 IEnumerable 列表,但都无法正确访问 datetime 属性,因此我不能只列出这些日期时间的第二个列表。
$("#btnExport").on("click", function () {
var modelData = '@Html.Raw(Json.Encode(Model))';
$.ajax({
type: "POST",
url: '@Url.Action("ExportTransactionsInExcel", "Gatelog")',
contentType: "application/json; charset=utf-8",
data: modelData,
success: function (result) {
},
error: function (obj) {
alert("fail");
}
});
});
所以有些蜱是... 日期(1561262400000) 日期(1563854400000) 日期(1561867200000) 日期(1564459200000) 我希望能够对列表进行编码并仍然让它返回正确的日期
【问题讨论】:
-
DateTime本身的序列化一般是没有问题的,你确定是设置值吗?分配时如何创建此 DateTime?
-
所以列表中的对象是一个“交易”。有一个单独的页面创建这些交易,其中一个字段是日期输入字段。有问题的页面用于将这些交易视为表格并能够导出。我知道该值已设置,因为在同一视图页面中我使用模型来显示表格的日期,这是将其导出为同一视图页面中的 excel 表并使用相同模型的 ajax 调用。
-
您能否调查浏览器中的网络选项卡,看看您是否获得了正确的 DateTimes 值?对于“交易”行?
-
我编辑了它并添加了我得到的刻度
-
如果这些是您在 C# 中用于创建日期时间的值 - 这些值不是刻度。刻度看起来像这样:637001922571086046,您所拥有的是 Unix 时间。
标签: javascript c# model-view-controller