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

     

  • 相关阅读:
    尝试用博客园写个人日记
    db4o能代替Hibernate吗?
    RSS是否能支持携带扩展的权重信息呢?
    log4view可以更清楚地看log文件,不知道咋用
    tafiti.com体验微软的silverlight
    推荐两个插件DPack, Resharper
    用美味书签的标签实现类似nextlib的知识管理
    进程通讯的多种方式
    多维角度聊聊结对编程
    在Windows下编译和.NET运行MemCached
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/8393906.html
Copyright © 2020-2023  润新知