WebApi参数传递实例

时间:2023-03-09 18:29:20
WebApi参数传递实例

WebApi参数传递实例

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 = ,
PType =
};
}

WebApi参数传递实例

1.2  方法含有多个形参

        public Product GetProductMore(string pName, decimal price, int pType)
{
return new Product
{
Name = pName,
Price = price,
PType = pType
};
}

WebApi参数传递实例

2.实体对象类型(实体传不进去)

3.实体对象和基础数据类型混合(实体传不进去,基础数据能传递进去)

WebApi参数传递实例

WebApi参数传递实例

4.最小满足原则

参数符合路由,可以进到后台,但无法解析实体类型,基础类型可以

5.Get参数长度限制(url长度的限制)

6.Get规范化

WebApi参数传递实例

7.关于实体作为参数传递的拓展

7.1借助[FromUri]特性传递实体

WebApi参数传递实例

WebApi参数传递实例

7.2  系列化与反系列化传递实体

前端参数为序列化string:

JSON.stringify({ "name": "YaGao", "price": 11.1, "pType": 2 })

后端反序列化:

  Newtonsoft.Json.JsonConvert.DeserializeObject<Product>(str);

Post

1.基础数据类型传递

1.1[FromBody]单个参数传递

WebApi参数传递实例

WebApi参数传递实例

WebApi参数传递实例

WebApi参数传递实例

1.2 dynamic参数传递

2.实体集合作为参数传递

WebApi参数传递实例

WebApi参数传递实例

不加FromBoby也可以正常接收参数

3.实体集合作为参数传递

WebApi参数传递实例

WebApi参数传递实例

4. 数组作为参数传递

WebApi参数传递实例

WebApi参数传递实例