.NET Core WebAPI post参数传递时后端的接收方式
2020-04-19 10:45
741 查看
.NET Core WebAPI post参数传递时后端的接收方式
- 实体类
- dynamic动态类型
- JObject参数
- 单值参数(字符串参数)
A.前端Post请求代码
$.ajax({ url: "/api/student/poststudent", type: 'POST', data:JSON.stringify({ name: "张三", age: 21 }), success:function () { }, dataType: "json", contentType: "application/json" });
B.后端接收参数方式
1. 实体类
实体类是比较简单的一种传参方式,使用频率非常高。
- 添加实体类
public class Student { public string Name { get; set; } public int Age { get; set; } }
- 后台处理Post请求代码
[HttpPost("{id}")] public void PostStudent(Student student) { }
- 接收参数结果
2.dynamic动态类型
- 后台处理Post请求代码
[HttpPost("{id}")] public void PostStudent(dynamic student) { var name = student.name;//name大小写与前端参数一致 var age = student.age; }
- 接收参数结果
3.JObject参数
- 引入Microsoft.AspNetCore.Mvc.NewtonsoftJson包
- 添加引用
using Newtonsoft.Json.Linq;
- 后台处理Post请求代码
[HttpPost("{id}")] public void PostStudent(JObject student) { }
- 接收参数结果
4.单值参数(字符串参数)
只能传一个字符串参数,并且用单引号包一个双引号,双引号里为字符串内容!
- 前端代码与以上方式不同
$.ajax({ url: "/api/student/poststudent", type: 'POST', data:'"name=张三,age=21"',//这里是重点!用单引号包一个双引号,双引号里为字符串内容! success:function () { }, dataType: "json", contentType: "application/json" });
- 后台处理Post请求代码
[HttpPost("{id}")] public void PostStudent([FromBody] string values) { }
WebApi 方法参数前加[FromBody]标识,表示该参数值应该从请求的Body中获取,而不是从URL中获取。不加[FromBody]标识后台取不到参数值。
4. 接收参数结果
设置允许跨域
如果有跨域需求支持,请设置允许跨域。在Stateup.cs中添加如下代码。
- 修改ConfigureServices方法,添加代码如下:
//允许一个或多个来源可以跨域 services.AddCors(options => { options.AddPolicy("CustomCorsPolicy", policy => { // 设定允许跨域的来源,有多个可以用','隔开 policy.WithOrigins("https://localhost:5000")//只允许https://localhost:5000来源允许跨域 .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials(); }); });
- 修改Configure方法,添加代码如下:
app.UseCors("CustomCorsPolicy");
相关文章推荐
- ASP.NET WebApi MediaTypeFormatter参数绑定的研究,支持POST文本方式的JSON字符串绑定
- 详解ASP.NET Core WebApi 返回统一格式参数
- vue前端开发那些事——后端接口.net core web api
- ASP.NET Core 实战:使用ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目
- ASP.NET MVC post请求接收参数的三种方式
- Jquery下Json数据的传递与解析(asp.net mvc与asp.net api下后台json接收方式的不同)
- Jquery下Json数据的传递与解析(asp.net mvc与asp.net api下后台json接收方式的不同)
- Asp.net页面间通过Post方式传递参数
- asp.net core webapi 统一处理返回值、异常和请求参数验证
- dotnet core webapi +vue 搭建前后端完全分离web架构
- 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
- dotnet core webapi +vue 搭建前后端完全分离web架构(一)
- .Net Core WebApi控制器接收原始请求正文内容
- 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
- asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
- form表单采用post提交方式提交,在url后面加问号再传递一个参数,提交后是否能接收到?
- 详解.net core webapi 前后端开发分离后的配置和部署
- 在asp.net 中应用POST传递和接收XML文件以及参数.
- HttpServletRequest setCharacterEncoding 接收post方式传递的中文参数
- 问题:调用 ASP.Net Core WebAPI的HTTP POST方法时,从 [FromBody] 中读取的 MongoDB GeoJsonObjectModel成员总是null