【发布时间】:2014-07-18 17:34:43
【问题描述】:
在我看来,我有一个函数,它需要调用一个列表,以便在其中执行 ajax 调用。我正在使用的 API 在其参数中有一个参数 List<>
。这就是我需要它的原因。
是否可以将List<>
类型的参数传递给Javascript 函数?如果是,使用什么合适的语法?我google了一下,还没有找到答案。
编辑:这是我的代码
Javascript 函数:
function DeleteRoom(RoomId, FloorId, userDevicesID) {
$.ajax({
beforeSend: function (xhr) {
xhr.setRequestHeader('verifySession', verifySession());
xhr.setRequestHeader('Authorization', '@HttpContext.Current.Session["BaseAuth"]');
},
url: "/api/Room/RemoveRoom?RoomId=" + RoomId + "&userDevicesId="+ userDevicesID,
type: "DELETE",
dataType: 'json',
success: function (data) {
// removing items from the view
}
});
}
调用使用该函数的弹窗:
arr.push(existingdevices[i].attrs.id); //array of IDs, can be empty
PopUpDeleteRoom(id, FloorId, arr);
API:
[HttpDelete]
public void RemoveRoom(int roomId, [FromUri]List<int> userDevicesId)
{
int currentUserId = SessionData.CurrentUser.UserID;
List<Equipment> equipmentsAssociated = equipmentRepository.FindMany(e => e.RoomID == roomId).ToList();
foreach (Equipment equipment in equipmentsAssociated)
{
equipment.RoomID = null;
equipmentRepository.Update(equipment);
equipmentDeviceRepository.DeleteAllEquipmentDeviceOfZwave(equipment.EquipmentID);
}
foreach (int userDeviceId in userDevicesId)
{
userDeviceRepository.Delete(userDeviceId);
//this generates a NullReferenceException that I will fix later
}
equipmentRepository.Save();
userDeviceRepository.Save();
roomRepository.Delete(roomId);
roomRepository.Save();
}
请问有解决这个问题的办法吗?
【问题讨论】:
-
List 或 JSON,如果您打印您说的列表?会有用的
-
这是我将传递给函数的整数 (ID) 列表,该函数是关于使用 API 通过它们的 ID 删除这些实例。
-
“列表”是指
Live/ Static Nodelist or Array
吗?这很重要,因为两者的方法不同 -
好吧,我现在很困惑。我为我的 API 使用了一个列表,为 js 函数使用了一个数组。请查看编辑,我认为我的代码搞砸了太多
-
javaScript 中没有 List 类型。要么有数组,要么有对象(我的意思是
{ }
)。但是要将其中任何一个作为参数发送,我建议您使用 jQuery$.ajax
函数中提供的data:
选项
标签: javascript list