I am using razor and I\'m having a hard time passing an array to a controller. the array contains objects that I made and I am trying to do this:
$.ajax({
t
the Ajax parameter
traditional : true
will do the trick.
Add "traditional:true" parameter in your ajax.
Example:
var parentValueToPush=new Array();
$('[name=SelectedUsers]:checked').each(function () {
parentValueToPush.push($(this).val());
temp.push($(this).val());
});
$.ajax({
url: //URL,
type: 'get',
traditional: true,
dataType: 'html',
cache: false,
data: { SelectedUsers: parentValueToPush},
success: function (data) {
//Result
}
});
Client side:
$.ajax({
type: "POST",
url: "HomePage/HandleOperations",
data: {operations: operationCollection},
success: function (data) { alert("SUCCESS"); }
});
and declare a class server side like this:
public class Operation
{
public int Index;
public string Source;
public string Target;
public int AddOrDel;
}
then you can have this action:
public void HandleOperations(Operation[] operations)
{
}
Usage of the traditional: true parameter for an ajax call:
To help radbyx, using the "traditional: true" property of an ajax call, like the following, will tell ajax to use the traditional form of serialization. More details: http://api.jquery.com/jQuery.param/ or What is "traditional style of param serialization' in JQuery.
$.ajax({
type: "POST",
url: "HomePage/HandleOperations",
data: {operations: operationCollection},
traditional: true,
success: function (data) { alert("SUCCESS"); }
});