如何将值从AngluarJS传递给MVC控制器

时间:2017-05-28 05:21:57

标签: angularjs asp.net-mvc

我正在使用AngularJS,我正在尝试将Angular中的值传递给Controller。这就是我的AngularJS脚本文件的样子:

<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传递的值。我怎样才能将该值传递给Controller?

1 个答案:

答案 0 :(得分:0)

您可以将其作为隐藏字段传递:

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