繁体   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