在ajax请求中传递日期值时出错

时间:2017-06-05 07:46:31

标签: javascript jquery ajax date http-post

我正在尝试传递一个Datein ajax请求,这是我的ajax调用 我正在获得Date 06/13/2017

的价值
$("#txtpdate").on("changeDate", function (e) {
            var Date = $('#txtpdate').val();

            $.ajax({
                type: 'POST',
                contentType: false,
                async: false,
                url: '/api/ServiceProvider/GetUpdatedPrice/' + Date,
                cache: false
            }).done(function (response) {



            });

这是我的控制器

[HttpPost]
        [Route("GetUpdatedPrice/{Date}")]
        public async Task<ServiceProviderDocuments> GetUpdatedPrice(DateTime Date)
        {
            return await ServiceProviderDocumentsGateway.GetUpdatedPriceofBike(date);

        }

但我收到此错误

**http://localhost:54850/api/ServiceProvider/GetUpdatedPrice/06/13/2017 404 (Not Found)**

我是否必须以JSON格式或我遗漏的任何其他内容传递日期? 请帮忙。

2 个答案:

答案 0 :(得分:0)

日期值中的/符号被解释为URL路径段分隔符。使用data字段向您的操作发送任何值。例如,使用

$.ajax({
  type: 'POST',
  contentType: false,
  async: false,
  url: '/api/ServiceProvider/GetUpdatedPrice/',
  data: {Date: DateValue}
});

有关详细信息,请参阅jQuery.ajax() documentationw3schools

答案 1 :(得分:0)

这是因为在/ formate

中用dd / mm / y格式化的日期
$("#txtpdate").on("changeDate", function (e) {
            var Date = $('#txtpdate').val();
            var newdate = Date.replace("/", "_");

            $.ajax({
                type: 'POST',
                contentType: false,
                async: false,
                url: '/api/ServiceProvider/GetUpdatedPrice/' + newdate,
                cache: false
            }).done(function (response) {



            });


            [HttpPost]
        [Route("GetUpdatedPrice/{Date}")]
        public async Task<ServiceProviderDocuments> GetUpdatedPrice(DateTime Date)
        {

    //  again replace date from '_' to '/'

            return await ServiceProviderDocumentsGateway.GetUpdatedPriceofBike(date);

        }