下面有一个 ASP.NET WebAPI 控件:
public SomeObject GetBenchMarkData(Comment comment)
{
//do stuff
}
在客户端,我正在尝试以下操作:
var comment = { ID: 0, Text: $('#text').val(), Author: $('#author').val(), Email: $('#email').val(), GravatarUrl: '' };
var json = JSON.stringify(comment);
$.getJSON("api/MintEIQAPI/" + json,
问题是 GetBenchMarkData 操作永远不会被上面的 getJSON 查询调用。
有人可以帮我吗,我做错了什么?
谢谢。
最佳答案
默认情况下,如果您通过 GET 传递复杂类型,则需要使用 FromUri 属性来修饰操作参数。
在客户端:
$.get('api/movies/test',
{Name:'Henrique', Age:'24'},
function (res) {
console.log(res);
}
);
在 Controller 上:
public void Get([FromUri] Customer c)
{
...
}
这样您就可以告诉 WebApi 从查询字符串中反序列化参数。另请注意,您不会对传递到服务器的对象进行字符串化。
这篇博文解释了 WebApi 和 MVC 模型绑定(bind)的差异: http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx
关于jquery - ASP.NET WebAPI - 如何使用 $.getJSON 传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493111/