2013-10-15 20 views
2

我一直在使用一些Web API之前..並據我所知.. (至少新版本)中的動作被稱爲Get,Post,刪除,把等.. 這些動作取決於在請求的HTTP動詞的觸發..Umbraco ApiController動作不會映射到http動詞

因此,例如,你可能有一個名爲UserApiController的ApiController ..

,如果你做的請求到/ api /用戶使用POST http-動詞..那麼在該控制器中的後動作將被觸發/執行..

但是.... 它似乎像我使用UmbracoApiController ...這個問題,因爲某些原因它不會執行帖子或獲取或任何其他動作映射到http動詞.. 任何想法?..是還有什麼其他的方法可以強制一個方法根據http-verb來執行嗎?

我當前的代碼是:

public class MyController : UmbracoApiController 
{ 
    [HttpPost] 
    public bool Post() 
    { 
     return true; 
    } 
} 

我已經在行動放在一個斷點與..

+0

在這個問題上有什麼好運氣?我也面臨同樣的問題。我可以擊中控制器,但是我無法從客戶端獲取值到服務器。請分享,如果你解決了問題 –

回答

1

是你使用了錯誤的屬性,他們將不被接受的原因 - HttpPost是System.Web.Mvc命名空間的一部分,而Web API是System.Web.Http命名空間的一部分。 您必須改用AcceptVerbs("POST")

+0

後多讀一些..不是HttpPost只是AcceptVerbs(「POST」)的簡寫?...似乎它..和我的實際問題無關。..因爲如果我創建了一個名爲Get()的簡單的Action方法,在GET請求期間Get不會被執行..據我所知,它在「普通」web api中沒有任何屬性裝飾。 – Inx

+0

什麼URL你用來發布到控制器嗎? UmbracoApiControllers映射到/ umbraco/api//因此您需要使用您的數據將POST調用到/ umbraco/api/My/Post。 –