控制器上没有找到任何操作'门票'匹配名称' CloseTicket'

时间:2014-09-22 13:55:03

标签: c# asp.net-mvc asp.net-web-api-routing

我正在编写一个webapi项目并收到错误在控制器上没有找到任何操作'门票'匹配名称' TestMethod'每当我尝试控制器中的任何方法时。

以下控制器中的所有操作均无效。

我一直在谷歌上搜索并已设置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;
    }
}

1 个答案:

答案 0 :(得分:3)

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

Reference

  

考虑控制器上的哪些方法&#34;操作&#34;?选择操作时,框架仅查看控制器上的公共实例方法。

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