【问题标题】:Getting date value null in ajax request在ajax请求中获取日期值null
【发布时间】:2017-11-06 01:30:44
【问题描述】:

我正在使用 Ajax 请求将日期值发送到我的 API 控制器这是我的 ajax 调用

 $("#txtpdate").on("changeDate", function (e) {
        var Date =$('#txtpdate').val();
        console.log(Date);
        $.ajax({
            type: 'POST',
            contentType: false,
            url: '/api/ServiceProvider/GetUpdatedPrice',
            data:{date: Date  },
            cache: false
        }).done(function (response) {

        });
});

这是我的 api 控制器

[HttpPost]
[Route("GetUpdatedPrice")]
public  ServiceProviderDocuments GetUpdatedPrice(DateTime date)
{
    return  ServiceProviderDocumentsGateway.GetUpdatedPriceofBike(date);
}

我在console.log(Date) 中获得了所需的值,但是当我到达控制器时它显示为空值 请看下面的图片

【问题讨论】:

  • 试试这个 - data: JSON.stringify({date: Date })
  • 检查this!
  • console.log(Date); 将什么记录到您的控制台?
  • 这显示在控制台 06/20/2017

标签: javascript c# jquery ajax date


【解决方案1】:

这样做就解决了

  var dt=$('#txtpdate').val();
    ko.toJSON({ date: new Date(dt)})

那么你就会得到实际行动的日期。

【讨论】:

    【解决方案2】:

    您好尝试将请求解析为 json 并将您的日期字段解析为日期,例如: 新日期

     var promise=jQuery.ajax({
            url: url,
            type: 'POST',
            data: JSON.stringify(data),
            contentType: 'application/json; charset=utf-8'
        }).promise();
    

    【讨论】:

      【解决方案3】:

      您应该将日期参数声明为 DateTime,例如:

      [HttpPost]
      [Route("GetUpdatedPrice/{pDate:datetime}")]
      public  ServiceProviderDocuments GetUpdatedPrice(DateTime pDate)
      {
          return ServiceProviderDocumentsGateway.GetUpdatedPriceofBike(pDate);
      
      }
      

      【讨论】:

        【解决方案4】:

        执行以下操作:

        1. 将参数类型改为字符串:

          [HttpPost]
          [Route("GetUpdatedPrice")]
          public  ServiceProviderDocuments GetUpdatedPrice(string date)
          {
              //Convert date to Datetime here
          }
          
        2. contentType 更改为:

          contentType: 'application/json; charset=utf-8',
          
        3. 字符串化date

          data: JSON.stringify({ date: Date }),
          

        【讨论】:

        • 控制器中仍然为空
        • @Gaurav_0093 这应该可以。你确定你做了所有的步骤吗?你能展示你更新的代码吗?
        • 是的,先生,这是我的代码 - $.ajax({ type: 'POST', contentType: 'application/json;', url: '/api/ServiceProvider/GetUpdatedPrice', data: JSON. stringify({ date: Date }), cache: false }).done(function (response) { in controller [HttpPost] [Route("GetUpdatedPrice")] public ServiceProviderDocuments GetUpdatedPrice(string date) { return ServiceProviderDocumentsGateway.GetUpdatedPriceofBike(date) ; }
        • @Gaurav_0093 请在您的问题中显示更新后的代码。编辑您的问题并显示您的新代码。
        • @S.Akbari-Sir 这是我问题中的更新代码
        【解决方案5】:

        在我的例子中,日期是一个对象的属性,而“set”只是“内部”的,所以我删除了它,现在它可以工作了。

        之后:

        public DateTime DataInicialFiltro { get; internal set; }
        

        之前:

        public DateTime DataInicialFiltro { get; set; }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-26
          • 1970-01-01
          • 1970-01-01
          • 2012-09-26
          • 1970-01-01
          • 1970-01-01
          • 2021-06-20
          • 1970-01-01
          相关资源
          最近更新 更多