webapi 参数传递详解
2021-04-08 15:27
标签:one ring ext value script color info nbsp 别人 经常有朋友遇到webapi参数传递问题,自己也碰到过一些坑,在此记录下正确的姿势,简单参数传递相信没有人会有问题,容易出现问题的是对象参数和表单参数。 控制器代码如下: 对应的JS请求代码如下,对于有FromBody的Put请求来说,两种请求方式都是可以的: 有图有真相 服务端代码如下: js请求代码有所不同,FromBody不再提供兼容支持 只能采用application/json方式提交: 调用结果: 有时候难免有上传文件的需求,对象存储这个嘛有的时候客户不愿意多花钱或者把文件存到别人的服务器上,只能自己存了。为了少点垃圾文件还是和表单一起提交吧。 webapi 参数传递详解 标签:one ring ext value script color info nbsp 别人 原文地址:https://www.cnblogs.com/shya/p/9085468.html原因
1、WebApi5.2.3有FromBody和无FromBody
public class ValuesController : ApiController
{
// POST api/values
[HttpPost]
[Route("~/api/Values/Post")]
public UserModel Post(UserModel value)
{
return value;
}
[HttpPost]
[Route("~/api/Values/Put")]
// PUT api/values/5
public UserModel Put([FromBody]UserModel value)
{
return value;
}
}
public class UserModel
{
public string UserName { get; set; }
public string Password { get; set; }
}
2、Asp .Net Core 有FromBody和无FromBody
public class ValuesController : Controller
{
// POST api/values
[HttpPost]
[Route("~/api/Values/Post")]
public UserModel Post(UserModel value)
{
return value;
}
[HttpPost]
[Route("~/api/Values/Put")]
// PUT api/values/5
public UserModel Put([FromBody]UserModel value)
{
return value;
}
}
public class UserModel
{
public string UserName { get; set; }
public string Password { get; set; }
}
$(‘#btnPost‘).click(function () {
$.ajax({
url: ‘/api/Values/Post‘,
data: {
UserName: ‘Admin‘,
Password: ‘123456‘
},
method: ‘POST‘,
dataType: ‘json‘
}).done(function (result) {
$(‘#txtPost‘).val(JSON.stringify(result));
})
})
$(‘#btnPostFromBody‘).click(function () {
$.ajax({
url: ‘/api/Values/Put‘,
data: JSON.stringify({
UserName: ‘Admin‘,
Password: ‘123456‘
}),
method: ‘POST‘,
dataType: ‘json‘,
contentType: ‘application/json‘
}).done(function (result) {
$(‘#txtPostFromBody‘).val(JSON.stringify(result));
})
})
3、Asp .Net Core 之From表单
1
1
1
下一篇:WPF属性(一)依赖属性