【问题标题】:Problems (retroactively) adding Web API to asp.net MVC project问题(追溯)将 Web API 添加到 asp.net MVC 项目
【发布时间】:2014-01-13 18:46:21
【问题描述】:

我在 Visual Studio 2013 中使用 asp.net mvc 迈出了第一步,但遇到了一个奇怪的问题。

我以 MVC 开始我的项目,但没有选中“Web API”框以包含核心引用。但是现在我想使用 Web API 功能。我创建了一个新的“somethingController”控制器,选择了 API 控制器(空),Visual Studio 做到了,创建了一个路由文件等。

但是,当尝试访问 URL /api/something/ 时,我得到了 404。我认为路由不起作用,或者还有其他一些我还没有想到的问题...

如果我创建一个新项目并选中“Web API”框,它就可以正常工作。但是,如果您有一个较大的项目并且想要添加 Web API 功能,那么必须有一种简单的方法可以可靠地将其添加到项目中,对吧?

谁能解释一下

a) 问题出在哪里(路由?缺少引用?还有什么?)

b) 如何可靠地将 Web API 内容添加到未选中复选框的项目中。

非常感谢。

【问题讨论】:

  • 哪些文件的内容对您有用?
  • controllerWebApiConfig 可能有用

标签: asp.net-mvc api visual-studio-2013


【解决方案1】:

好的,看来我已经成功了。当您将第一个 API 控制器添加到未检查 Web API 的项目时,会弹出一个自述文件,其中包含一些附加信息:

我尝试添加

WebApiConfig.Register(GlobalConfiguration.Configuration);

到 global.asax,但它不起作用。自述文件显示以下代码

GlobalConfiguration.Configure(WebApiConfig.Register);

确实有效,尽管(在我看来)两条线的作用完全相同??

【讨论】:

    【解决方案2】:

    你添加WebApi.Config文件了吗

      config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
    

    将此添加到您的 global.asax 中

    WebApiConfig.Register(GlobalConfiguration.Configuration);
    

    【讨论】:

    • 是的,我有。我在 WebApiConfig.cs 中设置了一个断点,可以看到它正在被访问/执行。但是服务器仍然给我一个 404 / 找不到资源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2012-08-12
    相关资源
    最近更新 更多