我想使用Angular JS发布2个实体。
这是我的AccountController.js
$scope.InsertAccount = function (user,account) {
accountsService.InsertAccount(user,account);
};
我的AccountService.js
var InsertAccount = function (user, account) {
return $http.post("http://localhost:26309/api/Compte/addUserV", {user :user, compte: account})
.then(function () {
$log.info("Insert Successful");
return;
});
};
我可以发布一个参数,但是当我尝试放置很多时它不起作用。
答案 0 :(得分:0)
你的意思是很多用户,很多帐户?通常,由于您要创建多个实体,因此您需要多个POST。因此帮助函数可能是您正在寻找的:
$scope.InsertAccounts = function (users, accounts) {
return $q.all(users.map(function (user, n) {
return $scope.InsertAccount(user, accounts[n]);
}));
}
答案 1 :(得分:0)
应该是你的方法。但是可以尝试这个
var InsertAccount = function (user, account) {
var data = {user :user, compte: account}; // assign first and can try JSON.stringify({,,})
return $http.post("http://localhost:26309/api/Compte/addUserV", data)
.then(function (response) {
$log.info("Insert Successful");
return response;
});
};
服务器端的可以尝试
public HttpResponseMessage addUserV(Newtonsoft.Json.Linq.JObject data)
{
var result = JsonConvert.DeserializeObject<dynamic>(data);
var user = result.user;
var compte = result.compte;
// rest of code
}
答案 2 :(得分:0)
尝试使用JSON.stringify()
,JSON.stringify()
方法将JavaScript值转换为JSON字符串。因此它会将您的数组/对象视为单个值。
var InsertAccount = function (user, account) {
//use JSON.stringify
var data = JSON.stringify({user :user, compte: account});
return $http.post("http://localhost:26309/api/Compte/addUserV", data)
.then(function (response) {
$log.info("Insert Successful");
return response;
});
};
答案 3 :(得分:0)
当我们在webApi Controller中检索JSonObject时,我们如何反序列化它?似乎问题出现在这段代码中
public HttpResponseMessage addUserV(Newtonsoft.Json.Linq.JObject data)
{
Utilisateur user = data["user"].ToObject<Utilisateur>();
Compte compte = data["compte"].ToObject<Compte>();
try
{
if (!_compteService.CreerUtilisateur(user, compte))
{
throw new Exception("ajout de l'instance de l'utilisateur non effecuté " + compte.designation);
}
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);
//response.StatusCode = HttpStatusCode.Created;
// String uri = Url.Link("GetUser", new { id = user.id });
// response.Headers.Location = new Uri(uri);
return response;
}
catch (Exception e)
{
HttpResponseMessage response = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
return response;
}
}
`