404试图使用web api端点

时间:2013-03-08 12:27:21

标签: asp.net-mvc-4 asp.net-web-api

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

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

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

然后调用我的静态Register方法:

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项目,我就没有这些问题。有人可以帮忙吗?

由于

马特

2 个答案:

答案 0 :(得分:0)

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

WebApiConfig.Register(GlobalConfiguration.Configuration); // Moved to the top
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);

答案 1 :(得分:0)

您的控制器必须以...Controller.cs结尾。

例如:

Test.csTestControllerV2.cs将返回404  TestController.csTestV2Controller.cs将返回200。

我看到你的确如此,但在搜索404被退回的原因时,我发现了你的帖子。