Метод IHttpActionResult не может вернуть NotFound()

Я разрабатываю веб-API для своего веб-сайта и столкнулся с проблемой.

На данный момент API должен возвращать данные от указанного пользователя.

Это мой контроллер для учетных записей:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Http;
using System.Net;
using RoditRepoAPIV2.Models;

namespace RoditRepoAPIV2.Controllers
{
    public class AccountController : Controller
    {
        Account[] products = new Account[] 
        { 
            //accounts will be added...
        };

        public IEnumerable<Account> GetAllAccounts()
        {
            return products;
        }

        public IHttpActionResult GetAccount(int id)
        {
            var account = products.FirstOrDefault((p) => p.Id == id);
            if (account == null)
            {
                return NotFound();
            }
            return Ok(account);
        }

    }
}

Хотя большая часть этого кода копируется из учебника здесь, Visual Studio жалуется, что " NotFound() " и " Ok(account) " не существуют в текущем контексте. Я обновил все пакеты NuGet до версии 5.1. 2+, и я все еще получаю эту ошибку.

Я провел некоторое исследование и обнаружил, что он работает для других людей...

Я был бы очень признателен, если бы кто-нибудь мог ответить рабочим решением! Спасибо.

Ответы

Ответ 1

Вам необходимо наследовать ваш контроллер от ApiConroller - это то, где определены эти методы:

public class AccountController : ApiController