Đáng ngạc nhiên, int và chuỗi không có MediaTypeFormatter theo mặc định, do đó, nó không biết cách xử lý các loại đó.
Loại duy nhất mà nó biết cách xử lý ra khỏi hộp là JSON, XML và dữ liệu được mã hóa url biểu mẫu. quote Đây là từ trang web asp.net chính thức, http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters
Trong Web API, các loại phương tiện xác định như thế nào Web API serializes và deserializes nội dung thư HTTP. Có hỗ trợ tích hợp cho XML, JSON và dữ liệu được mã hóa dạng url và bạn có thể hỗ trợ phương tiện bổ sung các loại bằng cách viết trình định dạng phương tiện.
Bây giờ bạn có thể viết MediaTypeFormatter của riêng bạn (liên kết tôi cung cấp sẽ cho bạn biết cách thực hiện), nhưng vì api web asp.net vẫn đang trong giai đoạn thử nghiệm, tôi đã gặp rất nhiều rắc rối khi sử dụng trình định dạng tùy chỉnh đối với các loại đơn giản như chuỗi. Tôi tìm thấy nó là dễ dàng hơn nhiều chỉ để bọc bất cứ giá trị bạn muốn PUT trong xml/json và nó sẽ tự động được deserialized. Xem bài của tôi ở đây để biết thêm về điều đó, When HTTP-POST has body, url parameter is null
Ví dụ cụ thể của bạn thân PUT của bạn sẽ trông như thế nào,
<message>
<id>6</id>
</message>
Sau đó, hãy chắc chắn để thiết lập các content-type yêu cầu http của bạn để text/xml (hoặc ứng dụng/json nếu bạn chọn sử dụng nó). Và nó nên tuần tự hóa tốt vào biến.
Bạn có thể đăng yêu cầu thô (từ Fiddler hoặc FireBug) không? – tpeczek
Bạn có xóa bất kỳ trình định dạng mặc định nào không? Bạn cũng có thể đăng mã cấu hình không. – tugberk
Bạn muốn phần cấu hình nào? –