.NET WEB API post传参,前端传参形式/后端接收方式

本文介绍了ASP.NET Core Web API中通过POST请求接收参数的不同方式,包括使用实体类、dynamic动态类型、JObject及单值字符串参数的方法,并提供了前端发送请求与后端处理请求的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.NET Core WebAPI post参数传递时后端的接收方式

  1. 实体类
  2. dynamic动态类型
  3. JObject参数
  4. 单值参数(字符串参数)

A.前端Post请求代码

$.ajax({
           url: "/api/student/poststudent",
           type: 'POST',
           data:JSON.stringify({ name: "张三", age: 21 }),
           success:function () {
           },
           dataType: "json",
           contentType: "application/json"
       });

 

B.后端接收参数方式

1. 实体类

实体类是比较简单的一种传参方式,使用频率非常高。

  1. 添加实体类
	public class Student
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
  1. 后台处理Post请求代码
[HttpPost("{id}")]
public void PostStudent(Student student)
{
}
  1. 接收参数结果

2.dynamic动态类型

  1. 后台处理Post请求代码
[HttpPost("{id}")]
public void PostStudent(dynamic student)
{
    var name = student.name;//name大小写与前端参数一致
    var age = student.age;
}
  1. 接收参数结果

2.dynamic动态类型

  1. 后台处理Post请求代码
[HttpPost("{id}")]
public void PostStudent(dynamic student)
{
    var name = student.name;//name大小写与前端参数一致
    var age = student.age;
}
  1. 接收参数结果

 

 

3.JObject参数

  1. 引入Microsoft.AspNetCore.Mvc.NewtonsoftJson包
  2. 添加引用 using Newtonsoft.Json.Linq;
  3. 后台处理Post请求代码
[HttpPost("{id}")]
public void PostStudent(JObject student)
{
}
  1. 接收参数结果

 

4.单值参数(字符串参数)

只能传一个字符串参数,并且用单引号包一个双引号,双引号里为字符串内容!

  1. 前端代码与以上方式不同
$.ajax({
           url: "/api/student/poststudent",
           type: 'POST',
           data:'"name=张三,age=21"',//这里是重点!用单引号包一个双引号,双引号里为字符串内容!
           success:function () {
           },
           dataType: "json",
           contentType: "application/json"
       });
  1. 后台处理Post请求代码
[HttpPost("{id}")]
public void PostStudent([FromBody] string values)
{
}

WebApi 方法参数前加[FromBody]标识,表示该参数值应该从请求的Body中获取,而不是从URL中获取。不加[FromBody]标识后台取不到参数值。
4. 接收参数结果

设置允许跨域

如果有跨域需求支持,请设置允许跨域。在Stateup.cs中添加如下代码。

  1. 修改ConfigureServices方法,添加代码如下:
//允许一个或多个来源可以跨域
services.AddCors(options =>
{
      options.AddPolicy("CustomCorsPolicy", policy =>
      {
             // 设定允许跨域的来源,有多个可以用','隔开
             policy.WithOrigins("https://localhost:5000")//只允许https://localhost:5000来源允许跨域
             .AllowAnyHeader()
             .AllowAnyMethod()
             .AllowCredentials();
      });
});
  1. 修改Configure方法,添加代码如下:
app.UseCors("CustomCorsPolicy");

 

 

### 如何使用 jQuery 的 `post` 方法传递参数 为了通过 jQuery 向服务器发送 POST 请求并传递参数,可以利用 `.ajax()` 或者更简洁的 `.post()` 方法。下面展示了一个简单的例子来说明如何实现这一点。 ```javascript $.post("/api/users", { id: "123", token: "abcde-token-value", geo: "someGeoData" }, function(data, status){ console.log("Data: " + data + "\nStatus: " + status); } ); ``` 在这个实例里,路径 `/api/users` 是接收请求的服务端地址;对象 `{}` 中包含了要提交给服务端的数据键值对;最后一个匿名函数则是成功回调处理程序,在这里可以根据返回的结果执行进一步的操作[^1]。 当涉及到向 Web API 发送复杂类型的 `[FromBody]` 参数时,则需要注意 JSON 数据格式以及设置正确的 HTTP 头部信息以确保数据被正确解析[^2]: ```javascript $.ajax({ url: "/api/values", type: "POST", contentType: "application/json; charset=utf-8", dataType: "json", data: JSON.stringify({ name: "John Doe", age: 30 }), success: function(response) { alert(JSON.stringify(response)); }, failure: function(errMsg) { alert(errMsg); } }); ``` 此代码片段展示了怎样配置 AJAX 调用来传送复杂的 JavaScript 对象作为主体内容,并指定了响应的内容类型为 JSON。这有助于与基于 .NET Core/Web API 构建的应用程序进行交互。 对于数据库通信而言,通常会结合后端框架(如 ASP.NET MVC/WebAPI)创建相应的控制器动作或 API 接口用于处理来自前端页面发出的各种 CRUD 操作请求。而 jQuery 则负责构建异步调用逻辑并将用户输入封装成适当的形式传送给服务器侧[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值