2014-02-25 99 views
1

我有一個OData控制器,具有'Put'和'Post'操作。當我發佈Content-Type:application/json時,我得到一個HttpResponseException,'415:不支持的媒體類型'。唯一的Content-Type控制器不會拋出異常的是application/x-www-urlformencoded。但那不是我想要接受的內容類型。OData更新控制器投擲415不受支持的媒體類型錯誤

爲什麼odata控制器不接受application/json?我沒有看到控制器配置中的任何內容限制了接受的內容類型。

我記得過去一樣的代碼。似乎東西倒退了。我應該在哪裏看?

回答

1

感覺你在體內期望的類型(即在你的行爲中聲明的參數)不屬於你的服務的EDM模型。

例如,

HttpResponseMessage Post(Customer customer) 

如果客戶不是你的EDM模型的一部分,網絡API將拋出一個415出現這種情況的ODataControllers只有ODataMediaTypeFormatters和ODataMediaTypeFormatter支持在模型中聲明只讀類型。

+0

這可能是它!非常感謝你!我嘗試使用ODataModelBuilder.EntitySet方法將該類型添加到模型中,但得到以下模型狀態錯誤:「實體類型'CustomerUpdate'與提供的實體集'Container.Customer'的基本類型'CustomerDTO'不兼容。當爲OData提要或條目閱讀器指定實體類型時,它必須是指定實體集的基本類型的相同或子類型。「 – user1198407

+0

我已經擁有客戶控制器的CustomerDTO類型,並且現在要添加CustomerUpdate類型(用於POST)。 – user1198407

相關問題