总结webAPI的常用请求方法与后台参数的获取:

一:get请求:(会将所以参数拼接到URL里面)

1:基础类型:string  a=“hello” , 前端无论你是写到ajax里面的data属性还是直接拼接到URL里面,后台直接string a获取;

[HttpGet]

public JObject AddUserInfo(string a)

{.........}

2:实体类型:(1)使用FromUri关键字:前端写到ajax里面的data属性里面提交,如data:{
      Id:"1",
      Name:"lsm",
      Old:"25",
    }

后台采用实体接收,先定义实体,属性名称需要和前台传过来的属性名称一致,使用【FromUri】关键字接收,

如模型定义为 public class UserModel
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Old { get; set; }
    }

接口写成:

[HttpGet]

public JObject AddUserInfo([FromUri]UserModel userInfo)

{.........}

(2)不使用FromUri关键字

前台将对象序列化成字符串:data: { strQuery: JSON.stringify({Id:"1",
      Name:"lsm",
      Old:"25",})}

后台采用字符串接收:参数名需和前台传过来的一致,并再序列化json对象

接口写法 [HttpGet]

    public string GetByModel(string strQuery)
    {
       UserModel oData = Newtonsoft.Json.JsonConvert.DeserializeObject(strQuery);
       。。。。
    }
3:若web API的接口方法名称以get开头的时候,可以省略[HttpGet]过滤
二:post请求
1:基础类型:data: { "": "Jim" },注意这里不能写key值,否则后台获取到的值将为空,后台使用[FromUri]关键字获取
[HttpPost]

     public bool SaveData([FromBody]string NAME)
     {
        return true;
     }
2:多个基础类型数据参数
前台写法:
data:{
      Id:"1",
      Name:"lsm",
      Old:"25",
    }
后台取法:使用dynamic关键字

    [HttpPost]
    public object SaveData(dynamic obj)
    {
        var strName = Convert.ToString(obj.NAME);
        return strName;
    }
3:单个实体类型:注意此时不能指定contentType为appplication/json,应当默认的application/x-www-form-urlencoded,否则将取不到数据
前台写法
data:{
      Id:"1",
      Name:"lsm",
      Old:"25",
    }
后台直接由实体接收:
[HttpPost]

   public bool SaveData(UserModel oData)
   {
       return true;
   }
4:单个实体类型:前台指定contentType为appplication/json,必须将json对象序列化在传输
前台写法
postdata:{
      Id:"1",
      Name:"lsm",
      Old:"25",
    }
data: JSON.stringify(postdata),
后台直接由实体接收:
[HttpPost]

   public bool SaveData(UserModel oData)
   {
       return true;
   }
 
5:基础类型+实体:指前台定contentType为appplication/json,后台使用dynamic关键字接收
前台:

postdata:{
      Id:"1",
      Name:"lsm",
      Old:"25",
    }
data: JSON.stringify({NAME:"Lilei", Charging:postdata}),
后台:
[HttpPost]

     public object SaveData(dynamic obj)
     {
         var strName = Convert.ToString(obj.NAME);
         var oCharging = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(obj.Charging));
         return strName;
     }
6:数组为参数:前台指定contentType为appplication/json
前台:
arr:["2","3","3","5"]
data: JSON.stringify(arr),
后台:
  [HttpPost]

    public bool SaveData(string[] ids)
    {
         return true;
    }
 
7:实体集合:前台指定contentType为appplication/json
前台
var arr = [
        { ID: "1", NAME: "Jim", CREATETIME: "1988-09-11" },
        { ID: "2", NAME: "Lilei", CREATETIME: "1990-12-11" },
        { ID: "3", NAME: "Lucy", CREATETIME: "1986-01-10" }
    ];
 
data: JSON.stringify(arr),
后台:
 [HttpPost]

    public bool SaveData(List lstCharging)
    {
       return true;
    }
三:put请求机制和post一样
四:delete请求机制和post一样

web API请求与参数获取的更多相关文章

  1. 让ASP.NET Web API支持$format参数的方法

    在不使用OData的情况下,也可以让ASP.NET Web API支持$format参数,只要在WebApiConfig里添加如下三行红色粗体代码即可: using System; using Sys ...

  2. [转]让ASP.NET Web API支持$format参数的方法

    本文转自:http://www.cnblogs.com/liuzhendong/p/4228592.html 在不使用OData的情况下,也可以让ASP.NET Web API支持$format参数, ...

  3. ASP.NET Web API中的参数绑定总结

    ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单 ...

  4. .NET Core WEB API中接口参数的模型绑定的理解

    在.NET Core WEB API中参数的模型绑定方式有以下表格中的几种: 微软官方文档说明地址:https://docs.microsoft.com/zh-cn/aspnet/core/web-a ...

  5. ASP.NET Web API 2 之参数验证

    Ø  前言 目前 C# 比较流行使用 ASP.NET Web API 来承载 Web 接口,提供与客户端之间的数据交互,现在的版本已经是 2.0 了.既然是接口就少不了对输入参数的验证,所以本文主要探 ...

  6. Web API 入门三(参数绑定)

    学到现在,感觉到微软的.NET各种框架和模型基础大致都差不多,所以,这部分内容大致和MVC部分差不多.在学习参事绑定之前,我们肯定要知道Controller(即控制器)是啥干啥的. 其实,Contro ...

  7. 如何测量并报告ASP.NET Core Web API请求的响应时间

    介绍 大家都知道性能是API的流行语.而相应时间则是API性能的一个重要并且可测量的参数.在本文中,我们将了解如何使用代码来测量API的响应时间,然后将响应时间数据返回到客户端. 作者:依乐祝 原文地 ...

  8. ASP.NET Web API实践系列07,获取数据, 使用Ninject实现依赖倒置,使用Knockout实现页面元素和视图模型的双向绑定

    本篇接着上一篇"ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API",尝试获取数据. 在Models文件夹下创 ...

  9. 让Web API支持$format参数的方法

    public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web AP ...

随机推荐

  1. Nginx报出504 Gateway Timeout错误2

    昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒: 复制代码 ...

  2. matlab vs使用

    ~ matlab无论什么程序只输出 ans 1 注意matlab命名规则:1不能与matlab内部函数名字重合.2.文件名首字母不能是数字或下划线.3.文件名中不能有空格.4.文件名不能太长.5注意大 ...

  3. 【linux】让普通用户执行root的程序

    再有些时候,比如zabbix监控中,需要使用netstat命令查看当前网络链接状态,但是zabbix用户没有权限执行netstat,会导致监控失败,为此使用如下即可解决 chmod +s /bin/n ...

  4. re.sub用法

    re.sub功能是对于一个输入的字符串,利用正则表达式,来实现字符串替换处理的功能返回处理后的字符串 re.sub共有五个参数 三个必选参数pattern,repl,string 两个可选参数coun ...

  5. yum安装软件出错解决方法

    造成yum下载安装时语法出错, 一般是由于python多个版本共存的原因.所以,只需将yum 设置文件固定python 版本,也就是python2 下面的操作能解决版本冲突问题. 1.sudo vim ...

  6. LeetCode:砖墙【554】

    LeetCode:砖墙[554] 题目描述 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是 ...

  7. 一个商品SKU是怎么生成的

    首先说一说什么是SKU.......自己百度去... 类似京东上面,未来人类S5这个台笔记本(没错,我刚入手了) 都是S5这个型号,但是因为CPU,显卡,内存,硬盘等不同,价格也不一样.CPU,显卡, ...

  8. matlab之scatter3()函数

    Display point cloud in scatter plot(在散点图中显示点云): scatter3(X,Y,Z) 在向量 X.Y 和 Z 指定的位置显示圆圈. scatter3(X,Y, ...

  9. BZOJ 1651 [Usaco2006 Feb]Stall Reservations 专用牛棚:优先队列【线段最大重叠层数】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1651 题意: 给你n个线段[a,b],问你这些线段重叠最多的地方有几层. 题解: 先将线段 ...

  10. 分享知识-快乐自己:Hibernate框架常用API详解

    1):Configuration配置对象 Configuration用于加载配置文件. 1): 调用configure()方法,加载src下的hibernate.cfg.xml文件 Configura ...