How can I send int array from ajax to c# mvc?
$.ajax({ url: <Url of the action>, type: "POST", data: JSON.stringify([1,2,3]), dataType: "json", contentType: 'application/json; charset=utf-8'});
and in the action.
public ActionResult ReceiveIntArray(int[] ints){ ...}
mvc should parse the json automatically.
check out this question.
Try solution from this question:
Set the
traditional
property to true before making the get call. i.e.:
jQuery.ajaxSettings.traditional = true$.get('/controller/MyAction', { vals: arrayOfValues }, function (data) { ... }
The way I'm doing it is with a simple input:hidden
element
<input type="hidden" name="elements" value='@String.Join(",", ViewBag.MyArray)' />
And in the JavaScript code I'm passing it as a string:
$.ajax({ type: "POST", url: '/Controller/Method', data: { recipients: $("input[name=elements]").val() }, traditional: true, success: updateSelected});
And finally I just Split
the elements like this:
[AcceptVerbs(HttpVerbs.Post)]public ActionResult Method(string elements){ IList<long> selected = elements.Split<long>(','); ...}