gpt4 book ai didi

Asp.net Web API : No action was found on the controller

转载 作者:行者123 更新时间:2023-12-01 05:21:32 24 4
gpt4 key购买 nike

所以这真的让我很头疼。

路线:

            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 错误消息:

“在与名称‘all’匹配的 Controller ‘Lookups’上没有发现任何操作。”

任何帮助,将不胜感激

编辑:
所以我终于想通了。
这是因为错误的依赖。
VS2012 将 Action 自动解析为 system.web.mvc.actionnameattribute 而我需要的是 system.web.http.actionnameattribute。

奇怪的问题,无论如何,我希望这对其他人有所帮助。

最佳答案

雅各布·李

编辑:

您正在重命名 Controller 但未指定方法。 WebApi 从前缀 GET、PUT、DELETE、POST 解析方法。所以方法属性必须放在 Action 的签名处:

试试这个,对我来说效果很好:

public class LookupsController : ApiControllerBase
{
[HttpGet()]
[ActionName("All")]
public Lookups GetLookups()
{
var lookups = new Lookups
{
Customers = GetCustomers().ToList(),
//add more
};
return lookups;
}

}
routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }

);

查看此处了解有关路由的更多信息:

Routing in ASP.NET Web API

希望对你有帮助!

关于Asp.net Web API : No action was found on the controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16300563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com