按照正常的写法,总是出现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]stringobj)
{
...
}
必须在参数列表前面加上[FormBody]标签。
2、前台的参数,仍然以key-value方式添加,但KEY的名字必须置为空:
$.ajax({
type:"POST",
url:"../Services/ChatTest/UploadTransportNetworkAlarmChat",
data: {"":"helloWorld"},
dataType:‘JSON‘,
})
多个参数的情况下,
1、后台需要定义实体类,参数列表中不用增加[FromBody]标签,如下:
public classtempObj
{public string imgBase64 { get; set; }public string name { get; set; }
}
接收 方法:
[Route("Services/{controller}/{action}")]
[HttpPost]
[HttpGet]public stringUploadTransportNetworkAlarmChat(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);
});
原文:http://www.cnblogs.com/perpetual/p/3769927.html