将WebAPI添加到现有的aspnetcore MVC项目

时间:2016-07-08 15:56:09

标签: asp.net-mvc asp.net-web-api asp.net-mvc-5 asp.net-core-mvc

我创建了一个新项目,选择了ASP.NET Core Web Application(.NET Core),然后选择了Web Application,Individual Users Accounts。

一切都很好,项目工作得很好,但是我想在这个项目中添加WebAPI功能,以便http://website.com/Home是MVC,而http://website.com/api/whatever是我的api,我希望他们都能使用相同的身份验证数据库(因此您可以在MVC站点上注册并对API进行身份验证)。

如果可以避免,我不想在解决方案中添加第二个项目。

有人发布了如何将WebAPI 4添加到现有的MVC项目,但这些说明在步骤1失败,将x添加到Global.asax,这对于ASP.Net Core MVC项目是不存在的。

请帮忙。

1 个答案:

答案 0 :(得分:9)

您的ASP.NET核心Controller已经支持MVC和WebAPI。在ASP.NET Core中,这些框架组合在一起。所以你需要的只是声明一个控制器动作,而不是返回ViewResult返回你的REST API模型。

示例:

public class ValuesController : Controller
{
    [HttpGet]
    public List<string> Get()
    {
        return new List<string> { "Hello", "World" };
    }

    [HttpGet]
    [Route("values/{valueName}")]
    public string Get(string valueName)
    {
        return valueName;
    }
}

必须可以在GET: /api/valuesGET /api/values/ + valueName下访问,具体取决于配置。这些是最常见的用例。

祝你好运。