modal - send array ajax asp net mvc
¿Cómo puedo enviar una matriz int desde ajax a c#mvc? (5)
Intente la solución de esta pregunta :
Establezca la propiedad
traditional
en true antes de realizar la llamada. es decir:
jQuery.ajaxSettings.traditional = true $.get(''/controller/MyAction'', { vals: arrayOfValues }, function (data) { ... }
¿Cómo puedo enviar una matriz int desde $ .ajax a c # mvc?
La forma en que lo hago es con una input:hidden
simple input:hidden
elemento input:hidden
<input type="hidden" name="elements" value=''@String.Join(",", ViewBag.MyArray)'' />
Y en el código JavaScript lo paso como una cadena:
$.ajax({
type: "POST",
url: ''/Controller/Method'',
data:
{
recipients: $("input[name=elements]").val()
},
traditional: true,
success: updateSelected
});
Y finalmente acabo de Split
los elementos así:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(string elements)
{
IList<long> selected = elements.Split<long>('','');
...
}
La forma más sencilla sería enviar una lista de cadenas delimitada (con comas, posiblemente) como argumento en una solicitud GET, luego usar Sting.Split()
para analizarlas en su receptor C # MVC.
Así, por ejemplo, $.get("/path-to/receiver/", { myArray: myArray.toString() } );
Luego, en el servidor, use
string[] stringArray = Request.QueryString["myArray"].ToString().Split('','')
para extraer los valores a una matriz de cadenas, luego Int32.TryParse
para finalmente obtener una matriz de entradas.
Pruebe esta solución:
var Array = [10, 20, 30];
$.ajax({
type: "Post",
datatype: "Json",
url: <Url of the action>,
data: JSON.stringify(Array),
contentType: ''application/json; charset=utf-8'',
});
$.ajax({
url: <Url of the action>,
type: "POST",
data: JSON.stringify([1,2,3]),
dataType: "json",
contentType: ''application/json; charset=utf-8''
});
Y en la acción.
public ActionResult ReceiveIntArray(int[] ints)
{
...
}
mvc debería analizar el json automáticamente.
Echa un vistazo a esta pregunta.