在控制器上找不到任何操作';门票';与名称';CloseTicket';

本文关键字:CloseTicket 门票 控制器 任何 操作 找不到 | 更新日期: 2023-09-27 18:24:05

我正在编写一个webapi项目,每当我尝试控制器中的任何方法时,都会收到错误在与名称"TestMethod"匹配的控制器"Tickets"上找不到任何操作。

以下控制器中的任何操作都不起作用。

我一直在谷歌上搜索,并且已经设置了WebApiConfig.cs来为路由添加操作。

我还缺少什么吗。

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional });
        config.EnableSystemDiagnosticsTracing();
    }
}

控制器

public class TicketController : ApiController
{
    [HttpPost]
    public static ServiceResponse<string> IssueTicket([FromBody]ServiceRequest<TicketRequest> request)
    {            
        return ServiceResponse<string>.WithPayload(ticketID);
    }
    [HttpPost]
    public static ServiceResponse<bool> CheckTicketExist([FromBody]ServiceRequest<string> request)
    {            
        return ServiceResponse<bool>.WithPayload(doesExist);
    }
    [HttpPost]
    public static ServiceResponse<bool> CloseTicket([FromBody]ServiceRequest<string> request)
    {
        return ServiceResponse<bool>.WithPayload(result);
    }
    [HttpPost]
    public static bool TestMethod([FromBody]string test)
    {
        return true;
    }
}

在控制器上找不到任何操作';门票';与名称';CloseTicket';

Web API在选择操作时不考虑静态方法。

参考

控制器上的哪些方法被视为"动作"?在选择操作时,框架只查看控制器上的公共实例方法。

从控制器中删除static关键字。