在 ASP.NET Core MVC 的 PartialView 中使用 Ajax post select 模态为 null

Use Ajax post select modal in PartialView of ASP.NET Core MVC is null

Ajax代码

$(function(){    
    var form = $(this).parents('.modal').find('form');
            var actionUrl = form.attr('action');
            var sendData = new FormData(form.get(0));        
    $.ajax({
                url: actionUrl,
                method: 'post',
                data: sendData,
                processData: false,
                contentType: false,
                cache: false,
                success: function (redata) {
                    ...
                },
                error: function (message) {
                    alert(message);
                }
            })
        })
}

在局部视图中,我使用selectobject#EmpSelect向selectobject#RolesList添加值和文本,然后使用 ajax post ID、标题、isVirtualGroup 和 RolesList 到控制器。

但 RolesList 始终为空,我该如何解决?

javascript代码

$('#AddRolesGroup').click(function () { $('#EmpSelect :selected').map(function (row, item) { console.log(item.text); $('#RolesList').append("<option value='" + item.value + "'>" + item.text + "</option>") }); });

查看 select object 部分

<div id="area">
    <select id="EmpSelect" class="form-select col-md-12" size="8"
                            multiple aria-label="EmpSelect">
    </select>

    <button class="btn" type="button" id="ClearSelect">Clear Select Roles</button>

    <select asp-for="RolesList" asp-items="Model.RolesList" class="form-select col-md-12" size="8"
     multiple aria-label="RolesList">
    </select>
</div>

您需要确保 select 在表格中并确保您已经 selected values.Here 是一个演示:

<form id="form1">
    <div id="area">
        <select id="EmpSelect" class="form-select col-md-12" size="8"
                multiple aria-label="EmpSelect">
        </select>

        <button class="btn" type="button" id="ClearSelect">Clear Select Roles</button>

        <select id="RolesList" name="RolesList" class="form-select col-md-12" size="8"
                multiple aria-label="RolesList">
            <option value="1">role1</option>
            <option value="2">role2</option>
            <option value="3">role3</option>

        </select>
    </div>
</form>
<button onclick="postdata()">postdata</button>

js:

function postdata() {
            var sendData = new FormData($("#form1").get(0));
            $.ajax({
                url: "PostData",
                method: 'post',
                data: sendData,
                processData: false,
                contentType: false,
                cache: false,
                success: function (redata) {
                    //
                },
                error: function (message) {
                    alert(message);
                }
            })
        }

操作:

public IActionResult PostData(string[] RolesList)
        {
            return Ok();
        }

结果: