2017-06-05 27 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); 

     }