¿Cómo publicar valores múltiples select2 usando datos de formulario?
porque los datos de formulario devuelven como a continuación:
pid=0& miembros=personal1&miembros=personal2&miembros=personal7
el valor de los miembros sería un valor muy dinámico ya que es una selección múltiple, ¿cómo lidiar con esto? Intenté desglosar el resultado de select2 y JSON.stringify primero y luego pasarlo al controlador, llegó al controlador pero el valor era nulo.
<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¿Lo que me faltaba?
dado que está utilizando el tipo de contenido json, debe agregar FromBody, y si está utilizando newtonsoft json, en lugar de una cadena, le sugiero que use JObject
public JsonResult Update_Data([FromBody]JObject _f)si aún desea usar su acción con una cadena, debe usar este ajax (eliminar tipo de contenido)
$.ajax({ type: 'POST', url: '/User/Update/', traditional: true, data:{ "_f" : _f }, dataType: 'json',