Post 使用表单数据选择 2 个多个值到控制器

Post select2 multiple values using form-data to controller

如何 post select2 使用表单数据的多个值?

因为表单数据 returns 如下所示:

pid=0&members=staff1&members=staff2&members=staff7

成员值是一个非常动态的值,因为它是多个 select,如何处理? 我试图分解 select2 结果,然后 JSON.stringify 先将其传递给控制器​​,它到达控制器但值为空。

<div class="form-group">
    <label class="col-form-label" for="input-members">Selected Members</label>
    <select class="form-control select2" id="members" name="members[]" multiple="multiple"> 
    </select>
 </div> 

 const _u = [];
 for (var i = 0; i <= users.length - 1; i++) {
      console.log(users[i]);

     var j = {
         id: users[i]
     };

     _u.push(j);
}

var _f = JSON.stringify({
    pid: 0,
    members: _u
});

$.ajax({
     type: 'POST',
     url: '/User/Update/',
     traditional: true,
     data: _f,
     contentType: "application/json; charset=utf-8",
     dataType: 'json',
     headers: headers,
     
 [HttpPost]
 [Route("/User/Update")]
 [AllowAnonymous]
 public JsonResult Update_Data(string _f)

 // it arrived here, but _f value was null

我错过了什么?

因为您使用的是 json 内容类型,所以您必须添加 FromBody,如果您使用的是 newtonsoft json,我建议使用 JObject

而不是字符串
public JsonResult Update_Data([FromBody]JObject _f)

如果您仍想使用带有字符串的操作,则必须使用此 ajax(删除内容类型)


$.ajax({
     type: 'POST',
     url: '/User/Update/',
     traditional: true,
     data:{ "_f" : _f },
     dataType: 'json',