我有一个 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 查询调用。
有人可以帮助我,我做错了什么吗?
Thanks.
默认情况下,如果您通过 GET 传递复杂类型,则需要使用 FromUri 属性来修饰操作参数。
在客户端:
$.get('api/movies/test',
{Name:'Henrique', Age:'24'},
function (res) {
console.log(res);
}
);
在控制器上:
public void Get([FromUri] Customer c)
{
...
}
通过这种方式,您可以告诉 Web Api 反序列化查询字符串中的参数。另请注意,您不会对传递到服务器的对象进行字符串化。
这篇博文解释了 WebApi 和 MVC 模型绑定的差异:http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)