2012-12-14 88 views
0

在一個項目中,我完成幾個月來,我在控制器中有這樣的:ASP.NET的WebAPI模型綁定不工作

public HttpResponseMessage Post(PersonModel model) 
{ 
} 

我可以把阿賈克斯後用JSON對象中的成員,並且會的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

你的Ajax請求的內容主體具有的application/x-www-form-urlencoded格式:
username=jon&password=123,但你已經設置的內容類型,以application/json。因此,Json.NET序列化程序無法反序列化請求主體內容。

你可以做以下之一:

  1. 更改內容類型爲application/x-www-form-urlencoded而不是顯式設置的contentType是application/json

  2. 繼續使用application/json然而JSON的字符串化數據:
    data: JSON.stringify({ username: "jon", password: "123" })

希望這有助於。