Set the option contentType: "application/json" and JSON.stringify your parameter:
var lines = new Array(); lines.push("ABC"); lines.push("DEF"); lines.push("GHI"); $.ajax( { url: 'MyController/MyAction/', type: 'POST', data: JSON.stringify({ 'lines': lines }), dataType: 'json', contentType: 'application/json', async: false, success: function (data) { console.log(data); } });
You can also set the type of objects that you get, if that makes sense in your business case. Example:
public JsonResult MyAction(string[] lines) { Console.WriteLine(lines);
And something more practical with what you post:
public class MyModel { string[] lines; }
and finally:
public JsonResult MyAction(MyModel request) { Console.WriteLine(string.Join(", ", request.lines));
Jaime torres
source share