Axios与Asp.Net Core WebAPI参数交互

以下内容针对Axios.Net Core WebAPI
如果是.Net WebAPI可参考这份文档

目录

    • 设定需知
    • RestFul
    • 数据查询-Get
      • 简单参数
      • 列表
      • 实体类
      • 文件
    • 数据提交-Post、Delete
      • 简单类型参数
      • 列表
      • 实体类
      • 文件
    • 接收后台返回的文件
    • 参考文档

设定需知

  1. .Net Core WebAPI中,无论是getpost或其他类型的方法。简单类型的数据会默认从url中获取,复杂类型的数据(实体类、列表等)默认从body中获取。
  2. 可以通过[FromQuery][FromBody][FromForm]等属性,强制从某个地方获取数据。但如果一个实体类被设定了[FromBody],则实体类中属性设定的其它[FromQuery]之类的注解无效。
  3. 可以为实体类中的属性加上[BindRequired]注解,设定为必填,不能应用于方法参数。
  4. 可以为实体类中的属性加上[BindNever]注解,设定为不接受绑定,不能应用于方法参数。

RestFul

axios中针对RestFul有以下四种简化写法(方框内的表示非必填):

  • axios#get(url[, config])
  • axios#delete(url[, config])
  • axios#put(url[, data[, config]])
  • axios#post(url[, data[, config]])

get广泛用于查询,可通过url直接访问,无可替代
post和put基本一致,一般不使用put
delete在特殊场景下有使用

post中传递的数据放在data中
config的常用的配置如下:

{
  headers: {'Content-Type': 'application/json'},  // 自定义请求头,一般无需配置或在全局配置
  params: {// 放在url中的参数(post等方法也能配置)
    ID: 12345
  },
  timeout: 1000,// 指定请求超时的毫秒数(0 表示无超时时间)
  responseType: 'json', // 表示服务器响应的数据类型,默认json,可以是 'blob'(接收文件),'arraybuffer',  'document', 'json', 'text', 'stream'
}

数据查询-Get

Get查询,只需要注意使用[FromQuery]即可,以下为具体使用。

简单参数

针对简单类型的参数,只需要前后端名称一致即可。即使参数个数对不上也能访问到(需要注意int等的默认值)。

axios.get("GetMoreNormal", {
    params: {
        strVal: 'demo',
        intVal: 123
    }
});

[HttpGet, Route("GetMoreNorma

你可能感兴趣的:(c#,aixos,asp.netcore,webapi,Core,WebAPI,axios,传参)