我正在尝试将 Web API 添加到现有的 ASP.NET MVC 项目中。这最初是一个 ASP.NET MVC 2 网站,后来升级到 MVC 3,然后使用以下过程再次升级到 MVC 4:
将 ASP.NET MVC 2 项目升级到 ASP.NET MVC 3
将 ASP.NET MVC 3 项目升级到 ASP.NET MVC 4
我的 Api 控制器非常简单。实际上,它是默认模板:
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
}
我添加了一个类来注册 de 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 }
);
}
}
这是从 Application_Start 调用的
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
但是,当我尝试访问 'localhost:50315/api/values' 时,我收到以下错误:
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:50315/api/values'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'values'.
</MessageDetail>
</Error>
根据路由调试器,路由似乎工作正常,web api 路由是“匹配当前请求”的第一个条目。