在将Web API添加到asp.net MVC项目中时出现问题(追溯)。

3
我在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?
非常感谢。

哪些文件的内容对您有用? - Kodekan
controllerтњїWebApiConfigтЈ»УЃйС╝џТюЅућесђѓ - Nilesh Gajare
2个回答

4

好的,看起来我已经搞定了。当你向没有勾选Web API的项目添加第一个API控制器时,会弹出一个自述文件,其中包含一些附加信息:

我尝试添加

WebApiConfig.Register(GlobalConfiguration.Configuration);

将代码添加到global.asax文件中,但没有起作用。readme文档显示以下代码

GlobalConfiguration.Configure(WebApiConfig.Register);

那确实起作用了,尽管对我来说,这两行代码似乎做的事情完全相同?

1
你是否已经添加了 WebApi.Config 文件?
  config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

在你的 global.asax 文件中添加这个。
WebApiConfig.Register(GlobalConfiguration.Configuration);

1
是的,我有。我已经在WebApiConfig.cs中设置了断点,并且可以看到它正在被访问/执行。然而,服务器仍然给我返回404 / 资源无法找到的错误。 - Kodekan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接