我使用ASP.NET-MVC。我尝试在ajax中发布数组,但是我不知道如何在我的控制器中获取它。这是我的代码:
阿贾克斯
var lines = new Array(); lines.push("ABC"); lines.push("DEF"); lines.push("GHI"); $.ajax( { url: 'MyController/MyAction/', type: 'POST', data: { 'lines': lines }, dataType: 'json', async: false, success: function (data) { console.log(data); } });
我的控制器
public JsonResult MyAction(string[] lines) { Console.WriteLine(lines); // Display nothing return Json(new { data = 0 }); }
为什么我看不到台词?如何正确发布此数组并在MyAction中使用它?
设置contentType: "application/json"选项和JSON.stringify参数:
contentType: "application/json"
JSON.stringify
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); } });
如果在业务案例中有意义,您还可以设置要获取的对象的类型。例:
而且,您发送的内容更实用:
public class MyModel { string[] lines; }
最后:
public JsonResult MyAction(MyModel request) { Console.WriteLine(string.Join(", ", request.lines)); // Display nothing return Json(new { data = 0 }); }