IHttpActionResult方法无法返回NotFound()

时间:2014-05-30 13:18:09

标签: c# asp.net-mvc asp.net-web-api

我正在为我的网站开发一个Web 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);
        }

    }
}

虽然大部分代码是从教程here复制的,但Visual Studio却抱怨当前上下文中不存在“NotFound()”和“Ok(account)”。我已将所有的NuGet软件包更新到版本5.1.2+,但仍然出现此错误。

我做了一些研究,发现它似乎适合其他人......

如果有人能用一个有效的解决方案作出回应,我将不胜感激! 谢谢。

1 个答案:

答案 0 :(得分:28)

您需要从ApiConroller继承您的控制器 - 这是定义这些方法的地方:

public class AccountController : ApiController