2017-06-05 91 views
0

我想在这里传递Datein Ajax请求是我的Ajax调用 我收到日期的价值2017年6月13日在Ajax请求传递日期值获取错误

$("#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格式或其他任何我缺少的东西来传递日期? 请帮忙。

+4

这是becouse日期有斜线,如路径斜杠,尽量URL编码值 – user3227295

+0

CHAGE路线的注解,使它可以接受'日期'的斜线值。在旁注中,不要使用'async:false'。 – 31piy

+0

我即将获得这样的价值06/06/2017 –

回答

0

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

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

详见jQuery.ajax() documentationw3schools

0

这是happend因为日期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); 

     }