1.键值对对应


这里所说的键值对并非是一般的键值对,是指键为空,值不为空的键值对

前台请求

$.ajax({

    url: host + '/api/Source/TestParams',

    type:"post",

    data: { '': "Amon"},

    success: function(a) {

        console.log(a);

    }

});

后台

.NET WebAPI post方式入参及返回参数方式_跨域

 

 

可以看到后台是接收到参数了的,但是这种方式只能传一个键值对参数,{'': 'Amon', '': 'male'} 这种参数是接收不到的,当然也可以把所有参数序列化为字符串,后台再进行反序列化,但是这种方式较为繁琐,所以不推荐

2.dynamic 动态类型(非跨域)

这种传参方式在非跨域环境下可行,但是在跨域环境下,前台请求时会出现 405 错误,虽然通过调整ajax请求参数会解决这个错误,但是后台无法正常接收参数

前台请求


$.ajax({

    url: host + '/api/Source/TestParams',

    type:"post",

    contentType: 'application/json',

    data: JSON.stringify({ 'name': "Amon", sex: 'male'}),

    success: function(a) {

        console.log(a);

    }

});


后台

.NET WebAPI post方式入参及返回参数方式_json_02

 

当前传参方式在非跨域环境中测试为可以正常传参,跨域环境暂未找到解决方法

3.实体类

实体类是相对来说比较简单的一种传参方式,跟我们平常采用的传参方式相似

前台请求


$.ajax({

    url: host + '/api/Source/TestParams',

    type:"post",

    data: { 'name': "Amon", sex: 'male'},

    success: function(a) {

        console.log(a);

    }

});

后台:

.NET WebAPI post方式入参及返回参数方式_json_03

这种传参方式需要声明一个实体类,所以说在改变传参时,相应的要去更改实体类,灵活性不是很高

4.JObject 参数(推荐)


JObject传参方式是个人比较推荐的一种方式,前台请求传参写法不具迷惑性,后台接收也较为灵活

前台请求


$.ajax({

    url: host + '/api/Source/TestParams',

    type:"post",

    data: { 'name': "Amon", sex: 'male'},

    success: function(a) {

        console.log(a);

    }

});


后台

.NET WebAPI post方式入参及返回参数方式_json_04

 

 

post方法返回数据

.NET WebAPI post方式入参及返回参数方式_json_05