c# - tutorial - FromBody no vinculante parámetro de cadena
web api rest c# tutorial (2)
Tengo un problema similar a ASP.NET MVC 4 RC Web API Parameter Binding Issue , pero estoy tratando de resolverlo utilizando el atributo [FromBody].
Fiddler informa la siguiente solicitud (excluyendo bits irrelevantes como la cadena del agente de usuario)
PUT http://localhost:82/api/account/shoppinglistitems HTTP/1.1
Host: localhost:82
Connection: keep-alive
Content-Length: 11
Origin: http://localhost:3000
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
query=apple
Mi acción de controlador es
[HttpPut]
public ShoppingListItemWebModel CreateShoppingListItem([FromBody]string query) {
// query is null
}
Podría ajustar el parámetro en un tipo complejo, pero eso parece un truco para solucionar el problema. O podría poner la consulta en el URI, pero eso no se ajusta al patrón del resto de la API. ¿Es posible hacerlo de esta manera? Si es así, ¿dónde está mi error?
Si está utilizando AngularJS en lugar de jQuery, es posible que desee optar por la siguiente alternativa, ya que AngularJS utiliza el tipo de contenido application/json
de manera predeterminada.
PUT http://localhost:82/api/account/shoppinglistitems HTTP/1.1
Host: localhost:82
Connection: keep-alive
Content-Length: 7
Origin: http://localhost:3000
Content-Type: application/json
Accept: application/json, text/javascript, */*; q=0.01
''apple''
Observe que el valor está envuelto en comillas de cadena (ya sea simple o doble).
cambie su solicitud para ser
PUT http://localhost:82/api/account/shoppinglistitems HTTP/1.1
Host: localhost:82
Connection: keep-alive
Content-Length: 11
Origin: http://localhost:3000
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
=apple
notar la falta de "consulta"