我创建了一个ASP.NET MVC 4控制器,如下所示:
[Serializable]
public class apiArgument
{
public string token { get; set; }
public int language { get; set; }
public string emailAddress { get; set; }
}
public class myController : ApiController
{
[HttpPost]
public HttpResponseMessage postSomething( [FromBody]apiArgument postedArgument )
{
...
}
}
但是,当我使用Fiddler 4.4.7.1测试我的控制器时,会找到控制器和操作,但是使用空值实例化了PostedArgument。
User-Agent: Fiddler
Content-type: application/json; charset=utf-8
Host: 1.1.1.1:8081
Content-Length: 60
{ token:"test", language: 1036, emailAddress: "foo@bar.fr" }
我与AFNetworking 2.0有相同的结果
扼杀,当我使用JQuery脚本测试控制器时,对象被正确绑定:
<script>
$(document).ready(function()
{
var request = $.ajax(
{
type: "POST",
url: "http://1.1.1.1:8081/myController/postSomething",
data: { token: 'test', language: 1036, emailAddress: 'foo@bar.fr' },
});
request.done(function (data)
{
alert('posted!');
});
request.fail(function (jqXHR, textStatus)
{
alert(textStatus);
});
});
</script>
所以,我认为我的路线配置很好。
我不明白有什么区别?
你知道为什么它不适用于Fiddler和AFNetworking吗?
非常感谢你的帮助。
答案 0 :(得分:0)
错误来自[Serializable]属性。我删除了它,一切正常!