gpt4 book ai didi

c# - 没有 MediaTypeFormatter 可用于读取类型为 'InventoryItem' 的对象

转载 作者:太空狗 更新时间:2023-10-29 18:11:03 25 4
gpt4 key购买 nike

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"} 

响应错误

No MediaTypeFormatter is available to read an object of type 'InventoryItem' from content with media type ''undefined''."

路由 POST 方法

public HttpResponseMessage PostItem(InventoryItem item)

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

关于复杂类型的 similar question 建议从 Beta 升级到 RC 以修复模型绑定(bind)更改,我已经这样做了。

如果问题不明显,我该如何纠正这个错误?如果我将 [FromUri] 属性添加到 Routed POST 方法,则 AJAX 调用会正确路由,但 InventoryItem 为空。如果您需要任何其他信息,请告诉我。

最佳答案

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

应该是:

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

请注意 ; 而不是 , 的用法,后者是内容类型和字符集之间的正确分隔符。此外,如果您遵循标准的 RESTful 约定,您的 Controller 操作应称为 Post 而不是如您所示的 PostItem:

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

关于c# - 没有 MediaTypeFormatter 可用于读取类型为 'InventoryItem' 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11180752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com