Asp.net mvc 4 404尝试使用web api端点

Asp.net mvc 4 404尝试使用web api端点,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我正在尝试向我的MVC项目添加一个web api控制器。这是一个MVC3项目,我已经升级到MVC4。我正试图让“测试”简单的api控制器工作,目前得到一个404。以下是我所做的: 我已经添加了所有必需的包。 我已将我的webapi配置添加到全局应用程序\u Start(): 然后调用我的静态寄存器方法: public static class WebApiConfig { public static void Register(HttpConfiguration conf

我正在尝试向我的MVC项目添加一个web api控制器。这是一个MVC3项目,我已经升级到MVC4。我正试图让“测试”简单的api控制器工作,目前得到一个404。以下是我所做的:

我已经添加了所有必需的包。 我已将我的webapi配置添加到全局应用程序\u Start():

然后调用我的静态寄存器方法:

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
我的web应用程序中定义了ApicController:

 public class SitechangesController : ApiController
    { 
        /// GET api/default1
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
公共类站点更改控制器:ApiController
{ 
///获取api/default1
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
最后,当我在localhost
http://localhost/api/Sitechanges
,我有一个404

如果我做一个文件/新项目,从头开始创建一个WebAPI项目,我就不会有这些问题。有人能帮我吗

谢谢


Matt

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

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

您的控制器必须以
…controller.cs
结尾

例如:

Test.cs
TestControllerV2.cs
将返回404。
TestController.cs
TestV2Controller.cs
将返回200

我知道你的有,但我在搜索404返回的原因时发现了你的帖子

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