Get
1.基础数据类型
1.1方法只含有一个形参
(1)Get传值的本质是通过url字符串拼接
(2)Get传递参数本质是url字符串拼接,Request-Head头部传递,Request-Body中不能传递(这是与Post方法的本质区别)
/// <summary> /// 方法只含有一个形参 /// </summary> /// <param name="pName">string类型</param> /// <returns></returns> [HttpGet] public Product GetProduct(string pName) { return new Product { Name = pName, Price = 210, PType = 2 }; }
1.2 方法含有多个形参
public Product GetProductMore(string pName, decimal price, int pType) { return new Product { Name = pName, Price = price, PType = pType }; }
2.实体对象类型(实体传不进去)
3.实体对象和基础数据类型混合(实体传不进去,基础数据能传递进去)
4.最小满足原则
参数符合路由,可以进到后台,但无法解析实体类型,基础类型可以
5.Get参数长度限制(url长度的限制)
6.Get规范化
7.关于实体作为参数传递的拓展
7.1借助[FromUri]特性传递实体
7.2 系列化与反系列化传递实体
前端参数为序列化string:
JSON.stringify({ "name": "YaGao", "price": 11.1, "pType": 2 })
后端反序列化:
Newtonsoft.Json.JsonConvert.DeserializeObject<Product>(str);
Post
1.基础数据类型传递
1.1[FromBody]单个参数传递
1.2 dynamic参数传递
2.实体集合作为参数传递
不加FromBoby也可以正常接收参数
3.实体集合作为参数传递
4. 数组作为参数传递