2017-12-29 54 views
1

vm.Nameは、ビューからコントローラに渡されたときにnullを返しますが、ビューのデータを呼び出すと、正常に表示されます。ビューからコントローラに渡されたときにJSONポストが返される

$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); 
    } 

私は次のことを試してみましたが、それでも "化するJsonResult"

  • は、文字列「への "成分" を変更する "のActionResult" を変更
    • ヌル

      を返されたVM [] "
    • Wrappi
    • )(JSON.stringify内のデータをngの私は続く... Ingredientモデル

    私も他のものを試してみましたが、最後に、それはまだnullを返しに名前で必要

  • +1

    コントローラメソッドでは、オブジェクトでありコレクションではありません。あなたは '$ scope.newIngs'ではなく' $ http data'に 'ing'オブジェクトを渡すべきです。 – Sajal

    +0

    それは働いた!ありがとう@Sajal – klent

    答えて

    0

    を削除しました@Sajalが言ったことは、 "$ scope.newIngs.push(ing);"データ "$ scope.newIngs"を "ing"に変更しました。

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