将对象从jquery ajax传递到WebAPI会导致结果为null
本文关键字:结果 null WebAPI 对象 jquery ajax | 更新日期: 2023-09-27 18:27:37
在HTML:上
<div>
<button onclick="clicker()">Click Me!</button>
</div>
<script type="text/javascript">
function clicker() {
var data = {
id: 1,
name: 'julius'
};
$.ajax({
type: 'POST',
url: '/api/test/',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8"
});
}
</script>
在控制器上:
public class TestController : ApiController
{
public void Post([FromBody]string value)
{
Console.WriteLine();
}
}
控制器上的变量"value"的值为null,不过,我将数据传递给ajax调用。有人能解释一下为什么会发生这种事吗?
不要试图将发布的内容作为字符串接收,而是创建一个封装您正在发布的属性的对象:
public class Data
{
public int id { get; set; }
public string name { get; set; }
}
然后将控制器更改为:
public class TestController : ApiController
{
public void Post(Data value)
{
int id = value.id;
string name = value.name;
}
}
如果你真的想以字符串的形式接收发布的数据,Darrel Miller的这篇博客文章可能会有所帮助:
将原始JSON发布到Web API。