将列表 <int> 类型的数据从 Razor 视图(元素是在 JS 中创建的)传递到控制器

pass data of type list<int> from Razor view(the elements were created in JS) to controller

如何将数据从 JS 创建的 select 标签传递到控制器? 这是我创建 select 标签的函数:

function changeFunc() {
    var elements = document.getElementsByClassName('selector2');
    while (elements.length > 0) {
        elements[0].parentNode.removeChild(elements[0]);
    }
    var selector = document.getElementById('selector');
    var selectedValue = selector.value;
    console.log(selectedValue);
    @foreach (var item in Model.Rooms)
    {
            <text>
            if (@item.RoomID == selectedValue)
            {
                var selectedValue2 = @item.Capacity;
            }
            </text>
    }
    var inputContainer = document.getElementById('for-input');
    for (var i = 0; i < document.getElementById('selector').value; i++)
    {
        var selector2 = inputContainer.appendChild(document.createElement("select"));
        selector2.className = "selector2";
        var option1 = document.createElement("option");
        option1.value = "0";
        option1.text = "Choose a client";
        option1.defaultSelected = true;
        selector2.appendChild(option1);
        selector2.tagName = "ClientsIDs";
        @foreach (var item in Model.Clients)
        {
            <text>
                var optionz = document.createElement("option");
                optionz.value = @item.ID;
                optionz.text = he.decode("@item.Name");
                selector2.appendChild(optionz);
            </text>
        }
    }
}

我想从“selector2”元素中获取值。如您所见,它处于一个循环中,因此这意味着创建了很多 selector。这就是为什么我想将这些值添加到列表中。 我试图将“name”属性设置为 List 类型的 属性,但问题是 for 循环在 JS 中,模型在 C# 中,所以我无法访问索引“i”变量。这是我尝试过的:

selector2.name("name", @Model.Reservations2.ClientsIDs[i]);

这是我的 属性:

public List<int> ClientsIDs { get; set; }

您应该这样设置名称属性:

selector2.setAttribute("name", "ClientsIDs[" + i +"]");

已渲染 Html