2017-05-28 81 views
0

我正在使用AngularJS,我正在嘗試將角度值傳遞給Controller。這就是我的AngularJS腳本文件看起來像:如何將AngluarJS的值傳遞給MVC控制器

<script> 
    var app = angular.module('myApp', []); 
    app.controller('myCtrl', function ($scope) { 
     { 
      function startTime() { 
       var today = new Date(); 
       var h = today.getHours(); 
       var m = today.getMinutes(); 
       var s = today.getSeconds(); 
       // add a zero in front of numbers<10 
       m = checkTime(m); 
       s = checkTime(s); 
       return (h + ":" + m + ":" + s); 
       t = setTimeout('startTime()', 500); 
      } 
      $scope.name = startTime(); 
     }    
    }); 
</script> 

所以從這一點我可以通過調用$ scope.name得到的時間。但我想將該變量傳遞給控制器​​。我想這樣做的方式是將它作爲參數傳遞給Html.BeginForm,但這不起作用。這是我的BeginForm:

<div ng-app="myApp" ng-controller="myCtrl"> 
    @using (Html.BeginForm("Bob", "Home", new { Time = ng-model="name" }, 
FormMethod.Post, null)) 
    { 

     <p>Name:</p> <input style="color:black;" ng-model="name"> 
     <h1 style="color:black;">You entered: {{name}}</h1> 
     <button type="submit" style="color:black;">Submit</button> 
    } 
</div> 

現在我有輸入框那裏只是這樣我就可以確保它傳遞正確的價值,它是。但在BeginForm中,它不允許Time等於從AngularJS傳遞的值。我將如何能夠將該值傳遞給控制器​​?

回答

0

你可以把它作爲一個隱藏字段:

@using (Html.BeginForm("Bob", "Home", FormMethod.Post)) 
{ 
    <input name="time" type="hidden" ng-value="name" /> 
    <button type="submit" style="color:black;">Submit</button> 
} 
+0

我欣賞的答案,但我試圖做到的是通過NG-值的值回控制器無需輸入框。我喜歡你做隱藏領域的想法,但我試圖找出如何做到這一點(將ViewBag設置爲ng值...但是如何,或者以其他方式)。 – kpschwert