从视图传递到控制器时,JSON post返回null

时间:2017-12-29 06:44:54

标签: arrays angularjs json http-post

vm.Name在从视图传递到控制器时返回null,但是当我在视图中调用数据时,它显示正常。

$scope.afterSelectedIngredient = function (selected) {
            if (selected) {
                $scope.selectedIngredient = selected.originalObject;
                $scope.newIngs = [];
                var ing = {};
                ing.Name = $scope.selectedIngredient;
                $scope.newIngs.push(ing);
                console.log($scope.newIngs)
                $http({
                    method: 'POST',
                    url: '/Ingredients/createIngredient',
                    data: $scope.newIngs
                }).then(function (response) {
                    console.log("ingredient exist: "+response.data)
                }, function () { alert('Error'); });
            }
        }

IngredientsController

[HttpPost]
    public ActionResult createIngredient(Ingredient vm)
    {
        Ingredient ingredient = new Ingredient();
        ingredient.Name = vm.Name;
        bool IngredientExists = db.Ingredients.Any(ing => ing.Name==vm.Name);
        if (IngredientExists)
        {
            return Json(IngredientExists);
        }
        else
        {
            db.Ingredients.Add(ingredient);
            db.SaveChanges();
        }
        return Json(IngredientExists);
    }

我尝试了以下内容,但vm仍然返回null

  • 将“ActionResult”更改为“JsonResult”
  • 将“Ingredient”更改为“string []”
  • 在JSON.stringify()
  • 中包装数据
  • 我删除了成分模型中的名称

我也尝试了其他的东西,但最后它仍然返回null ......

1 个答案:

答案 0 :(得分:0)

我按照@Sajal的说法,删除了" $ scope.newIngs.push(ing);"然后更改了数据" $ scope.newIngs"到" ing"现在它有效!

man
相关问题