Ich habe folgende API, die sich um die Aktualisierung Elemente in der Datenbank nimmt:MVC 6 API Mehrere Parameter
[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);
}
}
Dann unter meinem Angular Code, den ich Ausführung dieses POST
Methode wie folgt vor:
$scope.SaveChanges = function() {
$http.post("/api/items/update", $scope.items)
.then(function (response) {
}, function (err) {
$scope.errorMessage = "Error occured: " + err;
}).finally(function() {
});
};
Was ich tun möchte, ist, neue Parameter zu meiner ursprünglichen UpdateRecords
Funktion einzuführen, wo einige von ihnen optional sind. Dann würde mein Verfahren abhängig von den eingefügten Parametern verschiedene Dinge tun.
Was ich versucht habe zu tun ist, um meine Funktion zu ändern wie folgt (Beispiel):
public JsonResult UpdateRecords([FromBody]ICollection<ShoppingItemViewModel> vm, [FromBody]bool EraseOldItems)
und unter meiner Angular App:
$http.post("/api/items/update", {vm:$scope.items, EraseOldItems: true})
oder sogar
$http.post("/api/items/update", {'vm':$scope.items, 'EraseOldItems': true})
aber ich konnte den Code nicht zum Funktionieren bringen (meine Parameter waren die ganze Zeit Null).
Was mache ich hier falsch?