0

我正在尝试将 Web api 控制器添加到我的 MVC 项目中。这是我升级到 MVC4 的 MVC 3 项目。我试图让“测试”简单的 api 控制器工作,目前得到一个 404。这是我所做的:

我已经添加了所有必需的包。我已将我的 webapi 配置添加到我的 Global Application_Start() 中:

RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
WebApiConfig.Register(GlobalConfiguration.Configuration);  // Web API

这然后调用我的静态注册方法:

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }

我在我的网络应用程序中定义了一个 ApiController:

 public class SitechangesController : ApiController
    { 
        /// GET api/default1
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

最后,当我构建它并在 localhost 上浏览到我的站点时http://localhost/api/Sitechanges,我得到一个 404。

如果我做一个文件/新项目并从头开始创建一个 web api 项目,我就没有这些问题。任何人都可以帮忙吗?

谢谢

马特

4

2 回答 2

0

似乎在“正常”路由修复它之前添加了 web api 配置!

WebApiConfig.Register(GlobalConfiguration.Configuration); // Moved to the top
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
于 2013-03-08T12:38:30.363 回答
0

您的控制器必须以...Controller.cs.

例如:

Test.cs并将TestControllerV2.cs返回 404。
TestController.csTestV2Controller.cs返回 200。

我看到你的,但我在搜索为什么返回 404 时遇到了你的帖子。

于 2016-06-20T22:53:34.877 回答