我正在尝试传递一个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格式或我遗漏的任何其他内容传递日期? 请帮忙。
答案 0 :(得分:0)
日期值中的/
符号被解释为URL路径段分隔符。使用data
字段向您的操作发送任何值。例如,使用
$.ajax({
type: 'POST',
contentType: false,
async: false,
url: '/api/ServiceProvider/GetUpdatedPrice/',
data: {Date: DateValue}
});
有关详细信息,请参阅jQuery.ajax() documentation和w3schools。
答案 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);
}