JSONをWebAPIコントローラにポストしますが、モデルのプロパティはバインドされていません。私は見つけることができますWebAPI POST [FromBody]バインドされていません
POST http://diva2.local/siteapi/User HTTP/: diva2.local
Connection: keep-alive
Content-Length:: application/json, text/plain, */*
Origin: http://diva2.local
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.: application/json;charset=UTF: http://diva2.local/Users
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=: ISO-8859-1,utf-8;q=0.7,*;q=: .ASPXAUTH=4; __RequestVerificationToken=Rp_hUysjwCjmsxw2
{"Id":3,"FirstName":"DIVA2","LastName":"User1","Username":"diva1","IsApproved":true,"IsOnlineNow":true,"IsChecked":true}
すべての例では、これは動作するはずです私に語ったが、model.Id == null
次のように
public void Post([FromBody] Models.Users.User model) {
throw new Exception(model.Id.ToString());
}
生の要求があります。
はしかし、私はJSONを変更した場合:
{User: {"Id":3,"FirstName":"DIVA2","LastName":"User1","Username":"diva1","IsApproved":true,"IsOnlineNow":true,"IsChecked":true}}
すべてが正常にバインドします。
これは正しくないようです。私はパラメータとしてJObject
を受け入れることができたと思うし、手動でそれをバインドするが、上記のようにちょうど仕事(TM)を感じる?
更新:
私はモデルを返すようにする方法を変更した、と私はまだヌル受けます。
public Models.Users.User Post(Models.Users.User user) {
return user;
}
と応答:私のために完全に罰金
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-MiniProfiler-Ids: ["a0fab514-d725-4d8f-9021-4931dc06ec4a","fdeeb9a8-9e36-41d8-91d3-5348e880e193","c1b4cc86-d7c3-4497-8699-baac9fa79bf1"]
X-Powered-By: ASP.NET
Date: Tue, 21 May 2013 09:06:00 GMT
Content-Length: 4
null
Userのクラス定義を表示できますか? –
#facepalm。パラメータなしのコンストラクタはありません。洞察に満ちた例外のための歓声.net! – mattdwen
疑問を削除するようなことはありますか? – mattdwen