【问题标题】:Add WebAPI to existing aspnetcore MVC Project将 Web API 添加到现有的 asp net core MVC 项目
【发布时间】:2016-11-11 06:34:14
【问题描述】:

我创建了一个新项目,选择了 ASP.NET Core 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 项目不存在。

请帮忙。

【问题讨论】:

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


    【解决方案1】:

    您的 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;
        }
    }
    

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

    祝你好运。

    【讨论】:

    • 好吧,我创建了我的类,添加了一个脚手架项目,设置了上下文等,然后我得到了这个……创建 DbContext 实例以获取模型时出错。没有为此对象定义无参数构造函数。
    • 或者,使用实体框架创建控制器,API控制器和Actions,设置上下文,同样的错误。
    • 你是对的,刚刚选择了具有读/写操作的 API Controller 项目,它做到了,谢谢 :) 答案已接受。
    • 那么我该如何访问我的api呢?我试过 /api/Tests 它提供下载一个名为 Tests.json 的 json 文件??
    • 如何验证 API 请求?
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2020-11-04
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    相关资源
    最近更新 更多