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 = 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. 数组作为参数传递

 

原文地址:https://www.cnblogs.com/lgxlsm/p/8393906.html