Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs MVC6API多参数_Angularjs_Asp.net Mvc_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

Angularjs MVC6API多参数

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

我有以下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);
        }
    }
我想做的是为我的初始
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){ ... }