2015-02-23 82 views
0

所以我從一開始就非常新AngularJS道歉。ASP MVC http.post調用行動控制器角度不工作

所以我想要做的是將我的模型回傳給我的控制器。我試圖搜索整個互聯網沒有運氣。

這是我現在所擁有的:

(function() { 
    var mod = angular.module('branding', []); 

    mod.controller('BrandingController', ['$scope', '$http', function(brandModel) { 
     brandModel.model = dataModel.Views; 
     brandModel.SelectedName = "a"; 
     brandModel.SelectedDescription = "s"; 
     brandModel.SelectedIsBuiltIn = true; 

     brandModel.selectItem = function(view) { 
      brandModel.SelectedName = view.Name; 
      brandModel.SelectedDescription = view.Description; 
      brandModel.SelectedIsBuiltIn = view.IsBuiltIn; 

     }; 
     brandModel.clearText = function() { 
      brandModel.SelectedName = ""; 
      brandModel.SelectedDescription = ""; 
      brandModel.SelectedIsBuiltIn = ""; 
     }; 

     brandModel.update = function($http) { 
      brandModel.apply(function() { 
      $http.post("@Url.Action("SaveBranding","AirlineConfig")"); 
      //.success and .fail never are triggered when implemented 
      }); 
     }; 
    }]); 
})();  

我的控制器

[HttpPost] 
    public ActionResult SaveBranding(BrandingViewModel viewModel) 
    { 
     return View("Branding", viewModel); 
    } 

我能夠觸發更新的通話沒有問題,但我看到什麼都沒有從http.post呼叫。

我已經嘗試了直接通過一個職位和服務器的直接路徑,並沒有工作。

+0

網絡請求/響應在'/ AirlineConfig/SaveBranding'的調試控制檯中是什麼樣的? – Jasen 2015-02-23 23:33:15

+0

實際上,網絡選項卡中沒有顯示任何內容,但控制檯確實顯示了這一點: 無法獲取未定義或空引用的屬性'post' – 2015-02-23 23:37:57

+0

如果此角碼位於單獨的js文件中,那麼它將無法正確解析並呈現Razor' @ Url.Action()'並且可能會導致javascript錯誤。 – Jasen 2015-02-23 23:41:26

回答

1

您應該添加屬性:

mod.controller('BrandingController', ['$scope', '$http', function(brandModel, $http) { 

並調用這樣的:

brandModel.update = function() { 
      $http.post("@Url.Action("SaveBranding","AirlineConfig")", brandModel.model); 
      //.success and .fail never are triggered when implemented 
     }; 

如果您brandModel.model是BrandingViewModel。

+0

我已經改變我的腳本是這個,我仍然得到一個TypeError:無法獲取屬性'後'未定義或空參考 – 2015-02-23 23:53:50

+0

最後,我需要刪除更新中的$ http e功能 – 2015-02-24 00:01:25

+0

Ooo,對不起,我犯了一個錯誤。現在,當我將模型傳遞迴控制器時,從'brandModel.update = function($ http){' – 2015-02-24 00:03:55