Problema al invocar asp.net web api DELETE desde jqgrid

Estoy intentando invocar el método DELETE de la API WEB de ASP.net desde jqGrid. Sin embargo, recibo el mensaje “Estado de error: ‘Método no permitido’. Código de error: 405” .

A continuación se presentan los detalles.

Código JQGrid-

$("#employeeSalarysGrid").jqGrid('navGrid', '#employeeSalarysPager', { add: true, edit: true, del: true }, editOption, addOption, delOption); var delOption = { caption: "Delete", msg: "Delete selected record(s)?", bSubmit: "Delete", bCancel: "Cancel", mtype: "DELETE", url: 'http://localhost:50570/api/Test/' }; 

Método de API Web ASP.NET:

 public HttpResponseMessage Delete(string id) { //code for processing delete request } 

He rastreado la solicitud enviada utilizando Fiddler. A continuación se muestran los detalles de la solicitud:

 DELETE http://localhost:50570/api/Test HTTP/1.1 Accept: */* Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Referer: http://localhost:53055/Views/Test.aspx Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko Host: localhost:50570 Content-Length: 13 Connection: Keep-Alive Pragma: no-cache oper=del&id=2 

Tenga en cuenta que el parámetro Id = 2 se envía en el cuerpo de la solicitud y no en la cadena de consulta, lo que creo que debería estar bien.

Por favor, hágamelo saber sus opiniones sobre por qué no se invoca el método de eliminación.

Debería eliminar el cuerpo de la solicitud DELETE y adjuntar el ID al final de la URL. La respuesta (o esta anterior ) describe los detalles de la implementación. Le recomendaría estrictamente que elimine el prefijo http://localhost:50570 de las URL que use y use, por ejemplo, url: '/api/Test/' lugar de url: 'http://localhost:50570/api/Test/' . Vea aquí las restricciones de Ajax.

Como utiliza un tipo simple (cadena) como parámetro del método, la API web no puede enrutar la solicitud. Establezca la ID en el URI de esta manera: http://localhost:50570/api/Test/123 . Alternativamente, cambie el parámetro a un tipo complejo (clase) y la API web comenzará a enrutarse correctamente, vinculando el cuerpo al parámetro del método de acción.