这件事情真的让我苦恼了。
路由:
config.routes.MapHttpRoute(
name: 'ControllerAction' ,
routeTemplate: "api/{controller}/{action}"
);
Controller:
public class LookupsController : ApiControllerBase
{
[ActionName("all")]
public Lookups GetLookups()
{
var lookups = new Lookups
{
Customers = GetCustomers().ToList(),
//add more
};
return lookups;
}
}
每当我尝试访问URI:/api/lookups/all时,会出现404错误,显示:
“No action was found on the controller 'Lookups' that matches the name 'all'.”
如有帮助将不胜感激。
编辑: 最终我弄明白了。 由于依赖关系不正确,所以发生了这种情况。 VS2012自动解析操作为system.web.mvc.actionnameattribute,而我需要的是system.web.http.actionnameattribute。
奇怪的问题,但无论如何,我希望这对其他人有所帮助。