0

在我完成了几个月的项目中,我在控制器中有这个:

 public HttpResponseMessage Post(PersonModel model)
 {
 }

我可以发送带有 json 对象内成员的 ajax 帖子,WebAPI 将无缝填充模型中的每个属性。

但是,我刚刚开始了一个新项目并且正在做同样的事情,但是控制器内的模型现在只是空的。绑定似乎被破坏了。ASP.NET WebAPI 上是否发生了一些更改以防止这种情况发生?

这是我的ajax请求:

$.ajax({ url: "api/auth", type: "post", data: { username: "jon", password: "123" },dataType: "json", contentType: "application/json; charset=utf-8" });
4

1 回答 1

4

您的 ajax 请求内容正文的格式为application/x-www-form-urlencoded:
username=jon&password=123,但您已将 content-type 设置为application/json。因此,Json.NET 序列化程序无法反序列化请求正文内容。

您可以执行以下操作之一:

  1. 将 content-type 更改为,application/x-www-form-urlencoded而不是将 contentType 显式设置为application/json

  2. 继续使用application/json,但 Json 将您的数据字符串化:
    data: JSON.stringify({ username: "jon", password: "123" })

希望这可以帮助。

于 2012-12-14T20:36:32.023 回答