我想佔用我的OData行動,並試圖張貼JSON數據爲:無法張貼JSON數據的OData的WebAPI服務行動
{
"contractId":[1,3,5,7,9],
"projectId":9
}
我的動作配置爲:
var deleteContracts = builder.EntityType<Contract>().Collection.Action("DeleteItems").Returns<HttpResponseMessage>();
deleteContracts.CollectionParameter<long>("C_Id");
deleteContracts.Parameter<long>("P_Id");
行動是如下:
[HttpPost]
public IHttpActionResult DeleteItems (ODataActionParameters param)
{
//DO something
return null;
}
當我試圖把這個,我得到了以下問題:
「錯誤」:{
「代碼」:「」,
「消息」:「請求實體的媒體類型‘應用程序/ x WWW的形式進行了urlencoded’不支持該資源」。 ,
「innererror」:{
「消息」:「沒有MediaTypeFormatter可讀取來自與媒體類型內容類型‘ODataActionParameters’的對象‘應用程序/ x WWW的形式進行了urlencoded’」,
「鍵入 「: 」System.Net.Http.UnsupportedMediaTypeException「, 」堆棧跟蹤「:」 在System.Net.Http.HttpContentExtensions.ReadAsAsync [T](HttpContent內容,類型類型,IEnumerable`1 FO rmatters,IFormatterLogger formatterLogger,的CancellationToken的CancellationToken)在System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage請求,類型類型,IEnumerable`1格式化,IFormatterLogger formatterLogger,的CancellationToken的CancellationToken)」
}
}
響應頭:
Content-Type: application/json; odata.metadata=minimal
服務器:IIS/10.0 ODATA-版本:4.0 X-Sourcefiles:???= UTF-8乙QzpcVXNlcnNcbG1pc2hyYVxEb2N1bW VudHNcTGF4bWlrYW50XF9wcm9qZWN0c1xXZWJcRGV2ZWxvcG1lbnRcQ29udHJhY3RzXEluRWlnaHQuQ29udHJhY3RzLldlYlNlcnZpY2VzXG9kYXRhLWNvbnRyYWN0c1xDb250cmFjdHNcRGVmYXVsdC5EZWxldGVTZWxlY3RlZENvbnRyYWN0 = X供電,通過:ASP.NET 日期:星期五,2016年11月25日4點45分35秒GMT 的Content-Length:786
請求頭:
POST /ContractsWebServices/ContractsWebService/odata-contracts/Contracts/Default.DeleteItems HTTP/1.1
主持人:本地主機:65314 content-type:application/json content-length:50
{ 「contractId」:[1,3,5,7,9], 「projectId」:9 }
任何幫助表示讚賞。 謝謝。
我已經使用內容類型爲application/JSON和有認證頭了。 – Laxmikant
@Laxmikant除了它是說,你的內容類型是application/X WWW的形式,進行了urlencoded – Dijkgraaf
我不同意,所以我已經使用內容類型爲application/JSON。即使我試圖在另一個控制器,它正在 – Laxmikant