Angularjs MVC6API多参数
我有以下API,用于更新数据库中的项目:Angularjs MVC6API多参数,angularjs,asp.net-mvc,asp.net-core,asp.net-core-mvc,Angularjs,Asp.net Mvc,Asp.net Core,Asp.net Core Mvc,我有以下API,用于更新数据库中的项目: [Route("update")] [HttpPost("")] public JsonResult UpdateRecords([FromBody]ICollection<ShoppingItemViewModel> vm) { if (ModelState.IsValid) { try { var
[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);
}
}
我想做的是为我的初始UpdateRecords
函数引入新参数,其中一些参数是可选的。然后,根据插入的参数,我的过程将执行不同的操作
我试图做的是更改我的函数,如下所示(示例):
甚至
$http.post("/api/items/update", {'vm':$scope.items, 'EraseOldItems': true})
但是我无法让代码工作(我的参数一直为空)
我做错了什么?来自:
最多允许从消息体读取一个参数
// Caution: Will not work!
public HttpResponseMessage Post([FromBody] int id, [FromBody] string name) { ... }
此规则的原因是请求正文可能存储在
只能读取一次的非缓冲流
您可以传递包含其他对象的请求对象:
public class Request
{
public ICollection<ShoppingItemViewModel> vm { get; set; }
public bool eraseOldItems { get; set; }
}
$http.post("/api/items/update", {'vm':$scope.items, 'EraseOldItems': true})
// Caution: Will not work!
public HttpResponseMessage Post([FromBody] int id, [FromBody] string name) { ... }
public class Request
{
public ICollection<ShoppingItemViewModel> vm { get; set; }
public bool eraseOldItems { get; set; }
}
[Route("update")]
[HttpPost("")]
public JsonResult UpdateRecords([FromBody]Request request){ ... }