http://xxxx/api/garmin/data引发以下错误


  找不到与名为“ garmin”的控制器匹配的类型。


以下是Global.asax中的代码

void Application_Start(object sender, EventArgs e)
{
     RouteTable.Routes.MapHttpRoute(
        name: "ControllerAndAction",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = System.Web.Http.RouteParameter.Optional }
     );

     GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "json", new MediaTypeHeaderValue("application/json")));
     GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "xml", new MediaTypeHeaderValue("application/xml")));
}


控制器代码

public class GraminController : ApiController
{
    // GET
    [HttpGet]
    [ActionName("data")]
    public string GetGarminData()
    {
        return "value";
    }
}


上面的代码在开发服务器上有效,但是抛出以下错误


  找不到与请求匹配的HTTP资源
  URI'http://xxxx/api/garmin/data'。没有类型
  发现与名为的控制器匹配
  “ garmin”。


我究竟做错了什么?我该如何解决错误?

最佳答案

您的控制器名称Gramin,但是您尝试使用garmin访问它。以此方式路由的地图

public class GraminController : ApiController
{
    // GET
    [HttpGet]
    [Route("api/garmin/data")]
    public string GetGarminData()
    {
        return "value";
    }
}


或者如果您想使用自己的方式拨打电话

http://xxxx/api/gramin/data

08-03 23:36