如何读取ViewBag值?

时间:2014-05-05 11:57:02

标签: angularjs asp.net-mvc razor viewbag

我需要用控制器读取一个viewbag的值,我该怎么做?

控制器

app.controller('ConseilManagOrga', function ($scope, $http) {
$http.get("../api/Form/GetForm?id=" + @ViewBag.id).success(function (response) {
    $scope.FormFund = response;
});

});

ViewBag

  if (Name == "ConseilManagOrga")
        {
            ViewBag.Form = "FormChildren";
            ViewBag.Controller = "ConseilManagOrga";
            ViewBag.Image = "stone.jpg";
            ViewBag.id = 3;
        }

3 个答案:

答案 0 :(得分:2)

我认为这样做的最好方法是编写一个脚本标记,并使用Razor将JavaScript变量的值设置为ViewBag值:

<script type="text/javascript">
    var MyVariableFromViewBag = '@ViewBag.id';
</script>

这将创建一个全局变量名MyVariableFromViewBag。当然,您应该避免在生产代码中使用全局javascript变量。修改样本以分配给更安全的变量。

答案 1 :(得分:1)

另一种解决方法是使用隐藏的输入字段,该字段获取Viewbag值的值:

<input type="hidden" id="myId" value="@ViewBag.id" />

然后在您的javascript文件中,您可以通过ID访问此值:

var myId = $("#myId").val();

答案 2 :(得分:1)

使用ng-init也是另一种方法。

ng-init="vm.environment = '@ViewBag.Environment'"