Tôi đang gửi JSON tới bộ điều khiển WebAPI, nhưng các thuộc tính trên mô hình không bị ràng buộc.WebAPI POST [FromBody] không ràng buộc
public void Post([FromBody] Models.Users.User model) {
throw new Exception(model.Id.ToString());
}
Yêu cầu nguyên liệu như sau:
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}
Mỗi ví dụ tôi có thể tìm thấy nói với tôi điều này sẽ làm việc, nhưng model.Id == null
.
Tuy nhiên, nếu tôi thay đổi JSON để:
{User: {"Id":3,"FirstName":"DIVA2","LastName":"User1","Username":"diva1","IsApproved":true,"IsOnlineNow":true,"IsChecked":true}}
tất cả mọi thứ liên kết một cách chính xác.
Điều này có vẻ không chính xác. Tôi đoán tôi có thể chấp nhận JObject
làm tham số, và ràng buộc nó theo cách thủ công, nhưng nó cảm thấy như trên chỉ cần làm việc (tm)?
Cập nhật:
Tôi đã thay đổi phương pháp để trở lại mô hình, và tôi vẫn nhận được null.
public Models.Users.User Post(Models.Users.User user) {
return user;
}
Và câu trả lời:
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
Bạn có thể hiển thị định nghĩa lớp cho Người dùng không? –
#facepalm. Không có hàm tạo tham số-ít. Chúc mừng cho ngoại lệ sâu sắc .net! – mattdwen
Có điều gì làm xấu hổ khi xóa câu hỏi không? – mattdwen