1
I持っているデータベースに更新する項目の世話をし、次のAPI、: MVC 6 API複数のパラメータ
[Route("update")]
[HttpPost("")]
public JsonResult UpdateRecords([FromBody]ICollection<ShoppingItemViewModel> vm)
{
if (ModelState.IsValid)
{
try
{
var items = Mapper.Map<IEnumerable<ShoppingItem>>(vm);
//update database
_repository.UpdateValues(items, User.Identity.Name);
return Json(null);
}
catch (Exception Ex)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(null);
}
}
else
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(null);
}
}
はその後、私の角度のコードの下で、私は次のように、この
POST
メソッドを実行しています:
$scope.SaveChanges = function() {
$http.post("/api/items/update", $scope.items)
.then(function (response) {
}, function (err) {
$scope.errorMessage = "Error occured: " + err;
}).finally(function() {
});
};
私がしたいことは、最初のUpdateRecords
関数に新しいパラメータを導入することです。そのいくつかはオプションです。挿入されたパラメータに応じて、私の手続きはさまざまなことを行います。
私は何をしようとしていること(例)を以下のように私の機能を変更することです:
public JsonResult UpdateRecords([FromBody]ICollection<ShoppingItemViewModel> vm, [FromBody]bool EraseOldItems)
と私の角度のApp下:
$http.post("/api/items/update", {vm:$scope.items, EraseOldItems: true})
あるいは
$http.post("/api/items/update", {'vm':$scope.items, 'EraseOldItems': true})
しかし、私はコードを動作させることができませんでした(私のパラメータは常にヌルでした)。
私はここで間違っていますか? Parameter Binding in ASP.NET Web APIから