【问题标题】:ASP.NET WebAPI model binding not workingASP.NET WebAPI 模型绑定不起作用
【发布时间】:2012-12-14 19:54:41
【问题描述】:

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

 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" });

【问题讨论】:

    标签: ajax asp.net-web-api


    【解决方案1】:

    您的 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" })

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      相关资源
      最近更新 更多