在ajax请求中获取日期值null

时间:2017-06-05 09:49:05

标签: javascript c# jquery ajax date

我正在使用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)中获得了所需的值但是当我到达控制器时它显示为空值 请看下面的图片 enter image description here

5 个答案:

答案 0 :(得分:1)

刚刚解决这个问题

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

然后你会得到约会。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

}

答案 3 :(得分:0)

执行以下操作:

  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 }),
    

答案 4 :(得分:0)

在我的情况下,日期是对象的属性,而“集合”仅是“内部”,因此我将其删除,现在可以使用了。

之后:

array([[0.],[3.],[0.]])

之前:

public DateTime DataInicialFiltro { get; internal set; }