0
我有一個ApiController在我的Asp.Net應用程序,我想要使用像Ok(),NotFound(),BadRequest()等方法,而不是狀態代碼。但由於某些原因,這些方法在System.Web.Http命名空間的ApiController中不可用。請看下面的截圖。爲什麼我看不到ApiController的公共方法?
你有什麼想法?
我有一個ApiController在我的Asp.Net應用程序,我想要使用像Ok(),NotFound(),BadRequest()等方法,而不是狀態代碼。但由於某些原因,這些方法在System.Web.Http命名空間的ApiController中不可用。請看下面的截圖。爲什麼我看不到ApiController的公共方法?
你有什麼想法?
您正在使用什麼版本的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());
我的應用程序沒有看到IHttpActionResult類型.. – Vnuuk
因爲它沒有它們?使用F12轉到ApiController的定義,您將看到它提供的內容。 –
你可以在那裏使用Ok,它只是你的返回類型是對象。將其更改爲IHttpActionResult。 –
@StephenBrickner - 聲明爲返回'object'的任何方法應該可以完全返回任何東西 - 所有內容都可以隱式轉換爲'object'。 –