簡體   English   中英

沒有MediaTypeFormatter可用於讀取“ InventoryItem”類型的對象

[英]No MediaTypeFormatter is available to read an object of type 'InventoryItem'

AJAX電話

$.ajax({
    url: '/api/Inventory',
    cache: false,
    type: 'POST',
    data: json,
    contentType: 'application/json, charset=utf-8',
    statusCode: {
        201: function (data) {
            console.log(data);
            viewModel.items.push(data);
        }
    }
});

發送數據( json )/請求有效負載

{"Id":0,"Upc":"3456789012","Quantity":"200","Category":"Vodka","TransactionType":"Audit","MetaData":"ABSOLUT 750ml"} 

響應錯誤

沒有MediaTypeFormatter可用於從媒體類型為“未定義”的內容中讀取類型為“ InventoryItem”的對象。”

路由POST方法

public HttpResponseMessage PostItem(InventoryItem item)

JSON字符串中的所有屬性都存在於InventoryItem模型中。

關於復雜類型的類似問題建議從Beta升級到RC以修復模型綁定更改,我已經完成了。

如果問題不明顯,如何糾正此錯誤? 如果將[FromUri]屬性添加到R​​outed POST方法中,則AJAX調用將正確路由,但InventoryItem為空。 如果您需要其他任何信息,請告訴我。

contentType: 'application/json, charset=utf-8',

應該:

contentType: 'application/json; charset=utf-8',

注意的用法; 而不是,這是內容類型和字符集之間的正確分隔符。 同樣,如果遵循標准的RESTful約定,則控制器動作應稱為Post而不是PostItem如所示:

public HttpResponseMessage Post(InventoryItem item)
{
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM