尝试使用jquery ajax传递对象列表
我试图将对象列表传递到MVC控制器方法中,但只收到一个空对象。我做错了什么 我试图通过的列表:尝试使用jquery ajax传递对象列表,jquery,ajax,asp.net-mvc,asp.net-ajax,Jquery,Ajax,Asp.net Mvc,Asp.net Ajax,我试图将对象列表传递到MVC控制器方法中,但只收到一个空对象。我做错了什么 我试图通过的列表: coordList = [{"page":1,"xStart":118,"xEnd":481,"yStart":139,"yEnd":422},{"page":2,"xStart":74,"xEnd":379,"yStart":37,"yEnd":387},{"page":3,"xStart":128,"xEnd":349,"yStart":19,"yEnd":326}] Ajax调用: var
coordList = [{"page":1,"xStart":118,"xEnd":481,"yStart":139,"yEnd":422},{"page":2,"xStart":74,"xEnd":379,"yStart":37,"yEnd":387},{"page":3,"xStart":128,"xEnd":349,"yStart":19,"yEnd":326}]
Ajax调用:
var request = $.ajax({
type: 'GET',
url: Router.action("Api", "GetTable"),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({ 'coords': coordList }),
});
控制器方法:
[HttpGet]
public ActionResult GetTable(List<PageCoordModel> coords)
{
.....
}
感谢您的帮助您不能使用
contentType:'application/json;charset=utf-8',
带有GET(GET没有正文-数据作为查询字符串发送)。你需要写一篇文章(或者用集合索引器命名你的属性),你的变量名是coordsList
,你正在ajax调用中使用coordList
,这会给你一个脚本错误,比如coordList没有定义。用[HttpPost]
而不是[HttpGet]
来装饰你的操作方法。将ajax调用中的类型更改为type:'POST'
,并修复变量名中的键入错误。这将起作用。当我写问题时,我没有复制列表的名称,这就是发生键入错误的原因。谢谢你的帮助,我改变了ajax的类型,它成功了。
public class PageCoordModel
{
public String page { get; set; }
public int xStart { get; set; }
public int xEnd { get; set; }
public int yStart { get; set; }
public int yEnd { get; set; }
}