如何在Asp.NetWebApi中正确设置路由路径

本文关键字:设置 路由 路径 Asp NetWebApi | 更新日期: 2023-09-27 17:58:27

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"。

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

如何在Asp.NetWebApi中正确设置路由路径

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

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

或者如果你想用你的方式,那么打电话给

http://xxxx/api/gramin/data