Web API POST [FromBody] string value 接受参数

网上看到很多关于这这个问题的解决方案,但是都不正确,我也恰巧遇到这个问题,所有把正确的解决方案写出来,希望给后来人参考,如有不同意见欢迎指正

namespace WebApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public ActionResult<string> Get(int id)
        {
            return "value";
        }

        // POST api/values
        [HttpPost]
        public IActionResult Post([FromBody] string value)
        {
            return Ok(value);
        }

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }
    }
}
POST http://localhost:49518/api/values HTTP/1.1
Content-Type: application/json

"ddddff"
var value = '1111';
$.ajax({ 
type: 'POST',
contentType: "application/json", 
url: url, 
data: value, //如果是 string,int 直接传值 ,如果是模型 就要传对象{}
.......省略
});

也就是data 不要传{} 对象,直接传字符串或者int

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET Web API 是一种用于构建 RESTful Web 服务的框架。在 Web API 中,我们可以使用标准的 HTTP 方法(GET、POST、PUT、DELETE 等)来操作资源,通过 URL 参数和请求体传递数据。接下来,我将向您介绍如何在 .NET Web API 中接收参数。 首先,我们需要创建一个 Web API 控制器。在控制器中,我们可以定义多个 Action 方法,每个方法对应一个 HTTP 请求。 例如,我们创建一个名为 "ValuesController" 的控制器,并定义一个名为 "Get" 的 Action 方法,用于处理 HTTP GET 请求: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } } ``` 在上面的代码中,我们返回了一个包含两个字符串的数组作为响应结果。 现在,我们来看一下如何接收参数。假设我们想要实现一个查询指定 ID 的资源的功能,我们可以在控制器中添加一个名为 "GetById" 的 Action 方法,并使用 id 参数来指定资源的 ID: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id) { return "value" + id; } } ``` 在上面的代码中,我们使用 "int id" 参数来接收请求 URL 中的 ID 参数,并返回一个包含 "value" 和 ID 的字符串作为响应结果。 如果我们想要接收多个参数,可以在方法中添加多个参数: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id, string name) { return "Hello, " + name + "! Your ID is " + id; } } ``` 在上面的代码中,我们添加了一个名为 "name" 的字符串类型参数,用于接收请求 URL 中的 name 参数。 除了从 URL 中接收参数外,我们还可以从请求体中接收参数。在 HTTP POST 请求中,我们可以通过请求体来传递数据。在 Web API 中,我们可以使用 [FromBody] 属性来指定请求体中的参数。 例如,我们可以定义一个名为 "Create" 的 Action 方法,用于处理 HTTP POST 请求: ```csharp public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id) { return "value" + id; } // POST api/values public void Create([FromBody] string value) { // Do something with the value } } ``` 在上面的代码中,我们添加了一个名为 "value" 的字符串类型参数,并使用 [FromBody] 属性来指定它是从请求体中接收的参数。 最后,我们需要注意的是,如果我们需要接收复杂的对象类型参数,可以使用 [FromBody] 属性来指定对象的类型,并在方法中使用该类型的实例来接收参数。例如: ```csharp public class User { public int Id { get; set; } public string Name { get; set; } } public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 public string GetById(int id) { return "value" + id; } // POST api/values public void Create([FromBody] User user) { // Do something with the user object } } ``` 在上面的代码中,我们定义了一个名为 "User" 的类,并在 "Create" 方法中使用它来接收从请求体中传递的参数。通过这种方式,我们可以轻松地实现 Web API 中的参数接收功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值