2015-10-19 48 views
1

我創建了一個Web API 2項目和配置的OData4這裏控制器以下步驟:Web API 2 Odata 4 Tutorial你怎麼發佈到Web API 2的OData控制器

然而,每當我嘗試做一個簡單的POST(用JSON體創建實體)使用Postman我得到以下錯誤:

請求的資源不支持http方法'POST'。

控制器中的POST操作是這樣的:

public async Task<IHttpActionResult> Post(Product product) 
    { 
     if(!ModelState.IsValid) 
     { 
      return BadRequest(ModelState); 
     } 
     db.Products.Add(product); 
     await db.SaveChangesAsync(); 
     return Created(product); 
    } 

我在請求體發佈的JSON如下:

{ 
"Id":"lewisblack", 
"Name":"Lewis", 
"Price":"Black", 
"Category":"Category 1" 
} 

而我包括以​​下報頭請求以及:

OData-Version:4.0

的OData-MAXVERSION:4.0

內容類型:應用程序/ JSON

我失去了一些東西在這裏?

更新:找出問題。我使用的是不正確的URI。去

回答

1

沒有太多的信息:

我懷疑你沒有的PostMethod相關的控制器上。

Otherwhise,一些其他的事情要考慮:

  • 的OData是區分
  • 你缺少所需的屬性敏感
  • 數據類型是錯誤的(同上示例項目是一個整數,它看起來像在你的項目中的字符串,價格應該是一個小數,而不是一個字符串,...)

什麼是HTTP響應代碼(如果上面沒有幫助),當您發佈的對象。 (使用像小提琴手這樣的工具)。提示,如果您的http響應是「不良請求」,那麼您的數據可能無效以繼續執行操作。

+0

感謝指出了這一點,我將樣品中使用的隨機數據。我的錯。我想出了這個問題,我的URI是不正確的。 –