C# 如何在Asp.NETWebAPI中正确设置路由路径

C# 如何在Asp.NETWebAPI中正确设置路由路径,c#,asp.net,asp.net-web-api,routing,C#,Asp.net,Asp.net Web Api,Routing,抛出以下错误 未找到与名为“garmin”的控制器匹配的类型 下面是Global.asax中的代码 void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapHttpRoute( name: "ControllerAndAction", routeTemplate: "api/{controller}/{action}/{id}", default

抛出以下错误

未找到与名为“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“”。无类型 找到与名为的控制器匹配的 “加敏”


我做错了什么?如何修复错误?

您的控制器名称
Gramin
,但您正试图使用
garmin
访问它。把你的路线画成这条路

public class GraminController : ApiController
{
    // GET
    [HttpGet]
    [Route("api/garmin/data")]
    public string GetGarminData()
    {
        return "value";
    }
}
或者如果你想用你的方式打电话


是的,在Fiddler提到的“内容类型:application/json;charset=utf-8'我正在尝试让一个简单的GET请求工作,但也失败了。谢谢你Mostafiz。。。。。我不知怎么错过了。这样愚蠢的错误。它正在工作。导致简单拼写错误的原因,花费了数小时尝试进行故障排除。非常感谢。我能问个问题吗。。。在上述代码[Route…]中,我无法定义[Route]属性。是否需要导入命名空间?
System.Web.Http
namespace,或者直接导入
System.Web.Http.Route()
谢谢Mostafiz,由于某些原因,我似乎无法导入System.Web.Http.Route,而我得到的唯一导入命名空间是System.Web.Http.Routing。