Невозможно правильно вызвать несколько методов get - PullRequest
0 голосов
/ 02 июня 2018

У меня есть следующие методы получения в Web API AgentApiController

    public IHttpActionResult Get()      
    public IHttpActionResult Get(string agentid)                
    public TennetDetails getTenantDetail(string tenantid)        
    public IHttpActionResult getAgentByNumber(string mobile)        
    private Agent GetAgentDetail(PartyQuery query)        
    public IHttpActionResult GetDigiAgentDetail(int agentid)        
    public IHttpActionResult GetDigiAgentHistory(int agentid)

Когда я звоню AgentApi / Get / 7, public IHttpActionResult Get() - это пожары. На самом деле мне нужно запустить IHttpActionResult Get(string agentid).

когда я удаляю метод public IHttpActionResult Get() и вызываю public IHttpActionResult Get(), тогда public IHttpActionResult GetDigiAgentHistory(int agentid) срабатывает

Я изменил маршрут в WebApiConfig следующим образом:

`

      config.Routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });

        config.Routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");

        config.Routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });

        config.Routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });

        config.Routes.MapHttpRoute("DefaultApiWithActionWithId", "api/{controller}/{action}/{id}", new { id = RouteParameter.Optional });

`

но я все еще не могу найти решение проблемы

1 Ответ

0 голосов
/ 06 июня 2018

В моем коде была некоторая проблема

Я изменил

public IHttpActionResult Get(string agentid)

на

public IHttpActionResult Get(int id)

теперь код работает нормально.

Я думаю, поскольку я упоминаю идентификатор (имя параметра) в маршруте,

config.Routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });

Я должен использовать сам идентификатор в качестве именипараметр для действий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...