with img imagenes imagen example angularjs asp.net-web-api

imagenes - img with angularjs



POSTING desde Angular a.net WebAPI (2)

Estoy usando un recurso Angular $ para publicar un modelo en un punto final de webapi, pero Angular envía los datos en la carga útil de solicitud, en lugar de un cuerpo JSON o parámetros de formulario. Como resultado, el modelo siempre termina como nulo.

Mi API es la siguiente:

public class UserController : APIController { [HttpPost] public void Disconnect(Models.Users.User model) { } }

Los encabezados de solicitud son:

POST /siteapi/User/Disconnect HTTP/1.1 Host: rouge2 Connection: keep-alive Content-Length: 125 Accept: application/json, text/plain, */* Origin: http://rouge2 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 Content-Type: application/json;charset=UTF-8 Referer: http://rouge2/Users Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: .ASPXAUTH=115C6015BDD5C1A9D111B0A9FBF05294B73287328566F65CB1BCB457DF206EF0916D4615B5914EB443AA567E860742AC14EAA2951B9C327260C4F00649694260A1B3960771FB6675FEE8F3E68B0BB46436020ACAB33ECE0D3E70B50D6569E52B27F69161762C10C19A806A12D3254DF60EF4758DEDCA529A91CB36C74B7FA7F4; __RequestVerificationToken=Rp4Vu8R67ziDNc36DoOLZH7KmEfumig1zFDmYiFWHTsWyf2I037xJQydcmLtOfaJ3ccc8GEZXmHoa8LBRusxKFRYVoy27GuFEfNhKKYS_hUysjwCjmsxw5OCK3RKsiXIAh1Gbi0PxcdqBfzctSJn9g2

Y la carga útil de solicitud:

{"Id":3,"FirstName":"Test","LastName":"User","Username":"testuser","IsApproved":true,"IsOnlineNow":true,"IsChecked":true}

Si pruebo en Fiddler, publicando la misma cadena JSON en el cuerpo, el modelo se rellena correctamente, como se esperaba.

¿Existe una carpeta de modelos incorporada que funcione en este escenario, o algo pre-construido en algún lugar que pueda usar?

¿O puede alguien dirigirme a un ejemplo práctico?


Para mí esto solo funcionó bien. A continuación se muestra el código del lado del servidor

[HttpPost] public void Disconnect([FromBody] Models.Users.User model) { ... }

y el código del cliente que lo solicita será,

var dataToPost ={ id : 3, firstName : ''Test'', lastName : ''User'', username : ''testuser'', isApproved : true, isOnlineNow : true, isChecked: true }; var config = { headers : { ''Content-Type'': ''application/json;charset=utf-8;'' } } $http.post(thisIsUrl, dataToPost, config).then(......


Podrías usar el $http module .

Aquí hay un ejemplo:

<!DOCTYPE html> <html ng-app> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> </head> <body> <div ng-controller="TestController"> <ul ng-model="person"> <li>FirstName: {{person.FirstName}}</li> <li>LastName: {{person.LastName}}</li> <li>UserName: {{person.Username}}</li> <li>IsApproved: {{person.IsApproved}}</li> <li>IsOnlineNow: {{person.IsOnlineNow}}</li> <li>IsChecked: {{person.IsChecked}}</li> </ul> </div> <script type="text/javascript" src="~/scripts/angular.min.js"></script> <script type="text/javascript"> function TestController($scope, $http) { var data = { "Id": 3, "FirstName": "Test", "LastName": "User", "Username": "testuser", "IsApproved": true, "IsOnlineNow": true, "IsChecked": true }; $http.post( ''/api/values'', JSON.stringify(data), { headers: { ''Content-Type'': ''application/json'' } } ).success(function (data) { $scope.person = data; }); } </script> </body> </html>

Asumiendo el siguiente controlador:

public class ValuesController : ApiController { [HttpPost] public User Post(User model) { return model; } }