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

Sha*_*her 4 asp.net-mvc asp.net-web-api asp.net-mvc-5 asp.net-core-mvc

我创建了一个新项目,选择了ASP.NET核心Web应用程序(.NET Core),然后选择了Web应用程序,个人用户帐户.

一切都很好,项目运作完美,但我想在这个项目中添加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项目是不存在的.

请帮忙.

And*_*rei 10

您的ASP.NET Core 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

祝好运.