我正在尝试将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项目,我就没有这些问题。有人可以帮忙吗?
由于
马特
答案 0 :(得分:0)
似乎在“正常”路由修复它之前添加了web api配置!
WebApiConfig.Register(GlobalConfiguration.Configuration); // Moved to the top
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
答案 1 :(得分:0)
您的控制器必须以...Controller.cs
结尾。
例如:
Test.cs
和TestControllerV2.cs
将返回404
TestController.cs
和TestV2Controller.cs
将返回200。
我看到你的确如此,但在搜索404被退回的原因时,我发现了你的帖子。