传递一个List类型的参数给Javascript函数

Passing a parameter of type List to Javascript function

本文关键字:类型 参数 函数 Javascript List 一个      更新时间:2023-09-26

我的视图中有一个函数,它需要调用一个列表,以便在其中执行ajax调用。我使用的API在它的参数中有一个参数List<>。这就是为什么我需要它。

是可能的传递List<>类型的参数到一个Javascript函数?如果是,应该使用什么语法?我用谷歌搜索了一下,还没有找到答案。

编辑:这是我的代码

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();
    }

请问这个问题有解决方案或变通方法吗?

我假设在您的javascript中List<>Array

如果是这样的话,你可以用它做各种事情:http://www.w3schools.com/js/js_arrays.asp

示例(调用此函数将为数组中的每个元素显示一个警告):

var alertAllElements = function (theArray) {
    for(var x=0; x<theArray.length; x++)
        alert(theArray[x]);
};