2016-11-25 43 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) { 

    } 
}); 
相關問題