varias solicitud recurso que ningún encontraron encontrado con coincidían coinciden coincida acciones asp.net asp.net-web-api

asp.net - recurso - se encontraron varias acciones que coincidían con la solicitud post



WebAPI No se encontraron acciones en el controlador (1)

Esto se debe a que existe un desajuste entre los nombres de los parámetros. Desde su ruta, el valor 1 se asigna al parámetro llamado id y su acción busca un parámetro llamado moduleId .

La primera opción es cambiar su ruta de esta manera:

config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{moduleId}", defaults: new { moduleId = RouteParameter.Optional } );

En segundo lugar, debe cambiar su URL de esta manera:

http://localhost:37331/api/action/FindByModule?moduleId=1

Entonces el nombre del parámetro coincide.

Obtuve un error: no se encontró ninguna acción en el controlador ''Acción'' que coincida con la solicitud.

La url es http://localhost:37331/api/action/FindByModule/1 .

La ruta que usé es

config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );

Controlador:

public class ActionController : ApiController { private IActionRepository repository = null; [HttpGet] [ActionName("All")] public IEnumerable<JsonAction> All() { return from action in this.repository.Get() select new JsonAction { ID = action.ID, Text = action.Text.Trim(), Description = action.Description.Trim(), }; } [HttpGet] [ActionName("FindByModule")] public IEnumerable<JsonAction> FindByModule(Int64 moduleId) { return from action in this.repository.FindByModule(moduleId) select new JsonAction { ID = action.ID, Text = action.Text.Trim(), Description = action.Description.Trim(), }; } }