【问题标题】:How to send JSON date fields to web core API?如何将 JSON 日期字段发送到 Web 核心 API?
【发布时间】:2017-09-29 22:18:58
【问题描述】:

我有这个 AJAX 请求;

   addDataToDatabase = function (callback, errorCallback, url, data) {
        $.ajax({
            async: true,
            url: url,
            contentType: "application/json",
            dataType: "text",
            data: data,
            type: "POST"
        })
            .done(function (data) {
                callback(data);
            })
            .fail(function (data) {
                errorCallback(data);
            });

将数据发送到网络核心 API;

数据 "{\"InspectionId\":\"4471\",\"DateOfVisit\":\"25/09/2017 00:00:00\",\"NoAccessId\":\"2\",\"NoAccessComment\":\"lkjh lkjhlkjhlkhjlkjhlklkjh lkh lkh kjh dsf\"}"

用这个方法拾取什么

[HttpPost("addNoAccess")]
        public async Task<IActionResult> AddNoAccessVisit([FromBody] InspectionVisitNoAccessDto noAccessVisit)

dto的定义是

public class InspectionVisitNoAccessDto
    {
        public int InspectionId { get; set; }
        public DateTime DateOfVisit { get; set; }
        public int NoAccessId { get; set; }
        public string NoAccessComment { get; set; }

        public override string ToString()
        {
            return $"No Access Inspection Visit, date of visit {DateOfVisit.ToLongDateString()}, id = {NoAccessId}, comment = {NoAccessComment}";
        }
    }

DateOfVisit 字段是一个日期字段。使用此定义,日期字段的输入字符串似乎不会从字符串转换为日期字段,因为整个对象为空。 但是,如果我将定义从 DateTime 更改为字符串,一切都很好。 但我更愿意保持定义不变。我可以通过 JSON 输入来解决这个问题吗?

【问题讨论】:

    标签: json asp.net-core-webapi


    【解决方案1】:

    不要以25/09/2017 00:00:00 格式发送日期,而是尝试以ISO8601 格式发送。

    例子:

    var d = new Date();
    var n = d.toISOString();
    
    // result
    2017-09-29T14:15:39.409Z
    

    示例取自w3schools.com

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      • 2021-05-01
      • 2017-06-26
      相关资源
      最近更新 更多