按照正常的写法,总是出现404错误,研究了很久,在这里找到了解决方案:http://buxuxiao.com/article/using-jquery-to-post-frombody-parameters-to-web-api
现在总结一下,
单个参数的情况下:
1、后台参数正确的写法如下:
[Route("Services/{controller}/{action}")]
[HttpPost]
[HttpGet]
public string UploadTransportNetworkAlarmChat([FromBody]string obj)
{
...
}
必须在参数列表前面加上[FormBody]标签。
2、前台的参数,仍然以key-value方式添加,但KEY的名字必须置为空:
$.ajax({
type: "POST",
url: "../Services/ChatTest/UploadTransportNetworkAlarmChat",
data: {"":"helloWorld"},
dataType: ‘JSON‘,
})
多个参数的情况下,
1、后台需要定义实体类,参数列表中不用增加[FromBody]标签,如下:
public class tempObj
{
public string imgBase64 { get; set; }
public string name { get; set; }
}
接收 方法:
[Route("Services/{controller}/{action}")]
[HttpPost]
[HttpGet]
public string UploadTransportNetworkAlarmChat(tempObj obj)
{}
2、前台仍然使用JSON
var TempObj = { "imgBase64": image, "name": "helloWorld" }
$.ajax({
type: "POST",
url: "../Services/ChatTest/UploadTransportNetworkAlarmChat",
data: TempObj,
dataType: ‘JSON‘,
})
.done(function (data) {
alert("Data Loaded: " + data);
});
mvc5 webap2 前台如何使用 ajax 请求后台API,布布扣,bubuko.com
时间: 2024-10-11 16:13:16