此问题可能已被答复了上百次,但我找不到合适的资源。在WebApi项目(VS提供的默认项目)中,我有如下的ValuesController。具有不同参数名称的Web api路由方法
public string Get(int id)
{
return "value";
}
[HttpGet]
public string FindByName(string name)
{
return name;
}
[HttpGet]
public string FindById(int id)
{
return id.ToString();
}
在WebApiConfig.cs中,我有以下路由映射。
config.Routes.MapHttpRoute(
name: "actionApiById",
routeTemplate: "api/{controller}/{action}/{Id}",
defaults: new { action = "FindById", Id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "actionApi",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: new { name = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
现在只有FindById()动作正在工作,当我尝试在浏览器中。为什么其余的api调用返回“没有找到与请求匹配的HTTP资源”
如何获得所有三种方法的工作?而不使用AttributeRouting。我缺乏web api的基本概念吗? (我认为是)
你的意思是你不能调用“Get”方法?如果是这样,请分享您从客户端调用方法的方式? – Thanigainathan