我创建了一个新项目,选择了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项目是不存在的。
请帮忙。
答案 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/values
和GET /api/values/ + valueName
下访问,具体取决于配置。这些是最常见的用例。