2015-11-16 42 views
0

我有一個ApiController在我的Asp.Net應用程序,我想要使用像Ok(),NotFound(),BadRequest()等方法,而不是狀態代碼。但由於某些原因,這些方法在System.Web.Http命名空間的ApiController中不可用。請看下面的截圖。爲什麼我看不到ApiController的公共方法?

enter image description here

你有什麼想法?

+0

因爲它沒有它們?使用F12轉到ApiController的定義,您將看到它提供的內容。 –

+1

你可以在那裏使用Ok,它只是你的返回類型是對象。將其更改爲IHttpActionResult。 –

+0

@StephenBrickner - 聲明爲返回'object'的任何方法應該可以完全返回任何東西 - 所有內容都可以隱式轉換爲'object'。 –

回答

1

您正在使用什麼版本的WebAPI?您在方法聲明中沒有使用正確的返回類型。

public IHttpActionResult Get(int id) 
{ 
    var product = new Product(); 
    return Ok(product); 
} 

在新版本中,你可以做以下,或者類似的

public async Task<IHttpActionResult> Get() 
{ 
    return new OkResult(new HttpRequestMessage()); 
} 

此外,還可以使用各種其他的東西。我想你剛剛對如何訪問它們感到困惑:

new BadRequestResult(new HttpRequestMessage()); 
new NotFoundResult(new HttpRequestMessage()); 
+0

我的應用程序沒有看到IHttpActionResult類型.. – Vnuuk

相關問題