Uso controlador api en ASP.net web API y necesito pasar valor al método post por [FromBody] tipo...
[HttpPost]
public HttpResponseMessage Post( [FromBody]string name)
{
....
}
i uso Postman plugin pero cuando se envían a post método valor de name siempre es null.. siga esta imagen:
¡¿Por qué pasa esto?!
No puede enlazar una única cadena primitiva utilizando json y FromBody, json transmitirá un objeto y el controlador esperará a su vez un objeto complejo (modelo). Si sólo desea enviar una sola cadena, utilice la codificación url.
En su cabecera establezca
Content-Type: application/x-www-form-urlencoded
El cuerpo del mensaje de solicitud POST debe ser =saeed
(basado en su valor de prueba) y nada más. Para cadenas desconocidas/variables tiene que codificar URL el valor para que no se escape accidentalmente con un caracter de entrada.
Crear un modelo y utilizar eso en su lugar.
Valor del cuerpo del mensaje: {"name":"saeee"}
.
c#
public class CustomModel {
public string Name {get;set;}
}
Método Controller
public HttpResponseMessage Post([FromBody]CustomModel model)
Pasa cadenas primitivas a tu post usando el URI en lugar del cuerpo del mensaje.