C# 如何在Asp.NETWebAPI中正确设置路由路径
抛出以下错误 未找到与名为“garmin”的控制器匹配的类型 下面是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
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。