2016-11-25 91 views
0
[HttpDelete] 
public JsonResult ReservationCancel(int[] reservationId) 
{ 
    var model = ReservationDAO.getReservation(reservationId); 
    return Json(model,JsonRequestBehavior.AllowGet); 
} 

我试图通过身份证(1,2,3,4,5,6,7),我要删除所有这些Id什么数据类型我要在传递一个整数数组在ajax

我要在我的jQuery数据和内容类型?,如果我只传递一个数组数组?

.ajax({ 
    type: 'POST', 
    contentType: 'application/json', 
    url: '/Dashboard/Reservation', 
    data: { reservationId: Id }, 
    cache: false, 
    success: function (data) { 
} 
+0

你意识到你的方法期待一个'DELETE'并且你发送了一个'POST',对吧? – Jamiec

+0

'data:{reservationId:[1,2,3,4]},',添加'traditional:true,'并移除'contentType:'application/json','并将方法属性改为'[HttpPost]' –

回答

0

如果你想使用的Content-Type为 “appliaction/JSON”,那么你可以将数据分析为:

JSON.stringify({ reservationId: Id }); 
0

您的代码看起来不错,

您可以发送数据等这个。这取决于你如何让在服务器端的这个数据,您可以更改:

data: JSON.stringify({"reservationId":"[1,2,3,4]"} 
0

这里是你需要的东西:

方法1

1)您需要使用JSON.stringify()

JSON.stringify函数将Javascript对象转换为JSON文本并将其存储在字符串中。

见参考文献here

.ajax({ 
    type: 'POST', 
    contentType: 'application/json', 
    url: '/Dashboard/Reservation', 
    data: JSON.stringify({ reservationId: Id }), 
    cache: false, 
    success: function (data) { 

    } 
}); 

2)你的控制器就应该是这样的:

[HttpPost] 
public JsonResult ReservationCancel(string reservationId) 
{ 
    //deserializer reservationId string 
    var js = new JavaScriptSerializer(); 
    int[] reservationIDs = (object[])js.DeserializeObject(reservationId); 
    var model = ReservationDAO.getReservation(reservationIDs); 
    return Json(model,JsonRequestBehavior.AllowGet); 
} 

方法2

使用traditional属性AJAX:

.ajax({ 
    type: 'POST', 
    traditional: true, 
    url: '/Dashboard/Reservation', 
    data: { reservationId: Id }, 
    cache: false, 
    success: function (data) { 

    } 
}); 
相关问题