Controlador con dos metodos post en un web api

publicado por: Anonymous

Estoy haciendo un servicio web api con c#. En un controlador necesito tener dos métodos post.

Ahora mismo, tengo algo parecido a esto.

_x000D_

_x000D_

 public class TramitesController : ApiController_x000D_
    {_x000D_
    [ResponseType(typeof(Tramite))]_x000D_
    [BasicAuthenticationFilter]_x000D_
    public IHttpActionResult PostTramite(Tramite tramite)_x000D_
      {_x000D_
      return null;_x000D_
	  }_x000D_
			_x000D_
    [ResponseType(typeof(Incidencia))]_x000D_
    [BasicAuthenticationFilter]_x000D_
    public IHttpActionResult PostTramite(Incidencia incidencia)_x000D_
      {_x000D_
      return null;_x000D_
      }_x000D_
    }

_x000D_

_x000D_

_x000D_

si comento uno u otro método, funciona correctamente, pero los dos a la vez no, da error.

Es posible tener mas de un método post?

Gracias

solución

Deberías darle una ruta diferente, bien moviendo una de las acciones a un nuevo controlador, bien indicándole una ruta diferente a través de una atributo RouteAttribute:

public class TramitesController : ApiController
{
[ResponseType(typeof(Tramite))]
[BasicAuthenticationFilter]
public IHttpActionResult PostTramite(Tramite tramite)
  {
  return null;
  }

[ResponseType(typeof(Incidencia))]
[BasicAuthenticationFilter]
[Route("Incidencia")]
public IHttpActionResult PostTramite(Incidencia incidencia)
  {
  return null;
  }
}

De esta forma la primera acción tendría la ruta por defecto del controlador (si has dejado la configuración de rutas por defecto sería http://rutaAplicacion/api/Tramites) y la segunda añadiendo a la ruta Incidencia (http://rutaAplicacion/api/Tramites/Incidencia).

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *