提问者:小点点

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


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

一切都很好,该项目工作完美,但我想给这个项目添加Webapi功能,这样http://website.com/Home是MVC,http://website.com/api/whatever是我的API,我想他们都使用相同的认证数据库(所以你可以在MVC网站上注册和认证的API)。

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

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

请帮忙。


共1个答案

匿名用户

您的ASP.NET核心< code >控制器已经支持MVC和WebAPI。在ASP.NET核心中,这些框架被组合在一起。因此,您所需要的是声明一个控制器动作,而不是返回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下访问,具体取决于配置。这些是最常见的用例。

祝你好运!