我不知道,但这对我来说似乎含糊不清。我试图发出一个DELETE请求,应用于多个对象,用它们的ID(数组中的那些)引用。
这是我的控制者:
[HttpDelete]
public void RemoveRoomWithDevices([FromUri]int roomId, [FromBody] int[] userDevicesId)
{ //code
}
这是JS:
function DeleteRoomWithDevices(RoomID, FloorId, userDevicesID) {
$.ajax({
url: "/api/Room/RemoveRoomWithDevices?RoomId=" + RoomID,
type: "DELETE",
dataType: 'json',
contentType: 'application/json',
data: {
userDevicesId: userDevicesID
},
traditional: true,
success: function (data) {//success}
});
这里,在POST列中,没有传递数组(我用firebug进行调试)。当我用type: "POST"
替换类型时,我能够看到数组,但我无法执行删除查询。
你有什么建议?
答案 0 :(得分:0)
将两个参数与数据一起传递,其名称应与方法的参数匹配:
$.ajax({
url: "/api/Room/RemoveRoomWithDevices",
type: "DELETE",
dataType: 'json',
contentType: 'application/json',
data: {
roomId: RoomID,
userDevicesId: userDevicesID
},
traditional: true,
success: function (data) {//success}
});
答案 1 :(得分:0)
"规范没有明确禁止或阻止http正文#34; Is an entity body allowed for an HTTP DELETE request?
对于我自己的意见,删除请求不应该包含任何正文,并且必须指向一个用于删除的资源(/ car表示所有集合/ cars / {id}表示特定实体) 批量删除不是一个明显的主题,您可以查看以下关于它的主题
Patterns for handling batch operations in REST web services?