将ajax查询中的序列化对象发送到Web服务器

时间:2017-06-10 13:01:27

标签: javascript asp.net json

我是网络开发的新手,所以为了测试一些东西我用web api创建了一个空的ASP.NET项目。我写了以下控制器和javascript文件:
控制器:

 namespace MyNamespace.Controllers
    {
        public class PairController : ApiController
        {
            public Point Get([FromUri]int rows, [FromUri]int cols)
            {
                return new Point(rows, cols);
            }
        }
    }

JS:

var api = 'api/Pair';
var question = '/?rows=' + $('#rows').val() + '&cols=' + $('#cols').val();
var url = api + question;
$.getJSON(url, function (data) {
    alert('success');
    console.log(data[0].X + ' ' + data[0].Y);
}).fail(function () {
    alert('error!');
});

当我查看控制台时,我看到两个'未定义''线。
我期待看到行和列输入字段的值 这是为什么?我的理解是,在服务器端,Web服务器看到客户端需要json格式的答案,因此它将点序列化为json,并发送答案:

{
     "X": rows input value,
     "Y": cols input value,
     "IsEmpty": something 
}

1 个答案:

答案 0 :(得分:0)

当您编写data[0].X时,您尝试访问数组的第一项。但是在后端,你不会返回一个Point of Point(List<Point>)而是一个Point。因此,它作为对应

的对象被清除
{
     "X": rows input value,
     "Y": cols input value,
     "IsEmpty": something 
}