2016-02-26 42 views
0

這個想法是當我點擊帳戶,一個模式將彈出,系統菜單將在下拉列表中。我的問題是,當我在控制器中發送它時,我在表單中作爲隱藏類型創建的帳戶ID沒有任何價值。AngularJS:隱藏ID不在控制器發送

這裏是我的形式:

<form novalidate name="addMenusforuser" ng-submit="addMenuData(addMenusforuser)"> 
     <table> 
      <tr> 
       <input type="hidden" name="account_info_id" ng-model="masterlist.account_info_id" value="masterlist.account_info_id"> 
       <th> 
        System Menus 
       </th> 
       <td> 
        <select class="form-control" ng-model="masterlist.system_menus_id" ng-options="c.system_menus_id as c.sm_description for c in menus" required></select> 
       </td> 
      </tr> 
     </table> 
    <button type="submit" class="btn btn-primary" id="addbtn">Add</button> 
</form> 

我AngularJS:

/**Add Menu to database*/ 
    $scope.addMenuData = function (form) { 
     if (!form.$valid) { 
      alert("fill-up everything."); 
      return false; 
     } 
     var formData = []; 
     for (index in $scope.masterlist) { 
      formData.push({ "name": index, "value": $scope.masterlist[index] }); 
     } 
     $http.post('/Accounts/AddMenusForUser', $.param(formData)).then(function (response) { 
      if (form) { 
       form.$setPristine(); 
       form.$setUntouched(); 
      } 
      angular.element("#addMenu").modal("hide"); 
      $scope.display(); 
     }); 
    } 

這裏是我的MVC控制器,其中account_info_id爲空:

 public ActionResult AddMenusForUser(int system_menus_id = 0, int account_info_id = 0) 
     { 
      var check = db.System_Menu_Roles.Where(x => x.system_menus_id == system_menus_id && x.account_info_id == account_info_id).FirstOrDefault(); 
      if (check == null) 
      { 
       System_Menu_Roles smr = new System_Menu_Roles(); 
       smr.account_info_id = account_info_id; 
       smr.system_menus_id = system_menus_id; 
       smr.active_flag = true; 
       db.System_Menu_Roles.Add(smr); 
       db.SaveChanges(); 
      } 

      return null; 
     } 

能有人給我提意見我將如何解決這個問題?提前致謝。

+0

之前$ http.post。你可以記錄'$ scope.masterlist'並查看'$ scope.masterlist.account_info_id'是否存在。如果它沒有定義它不會被髮送 –

+0

反正,我只是修改我的代碼,它現在正在工作。 – Jen143Me

回答

0

檢查您提交功能參數 應該

<form novalidate name="addMenusforuser" ng-submit="addMenuData(masterlist)"> 

而且在功能

$scope.addMenuData = function (form) { 
alert (JSON.stringify(form));