Javascript 如何使用角度模块在视图中标识模型对象?

Javascript 如何使用角度模块在视图中标识模型对象?,javascript,c#,angularjs,asp.net-mvc,Javascript,C#,Angularjs,Asp.net Mvc,当前,我的viewModel从我的控制器传递到我的视图,并在列表中填充。我可以在我的视图中引用我的模型,就像当前的模型一样 但是,如果我想做这样的事情: <table style="margin-top:20px" cellpadding="2" cellspacing="2" border="1"> <tr> <th>First Name</th> <th>Last Na

当前,我的viewModel从我的控制器传递到我的视图,并在列表中填充。我可以在我的视图中引用我的模型,就像当前的模型一样

但是,如果我想做这样的事情:

<table style="margin-top:20px" cellpadding="2" cellspacing="2" border="1">
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
        </tr>
        <tr ng-show="users != null" ng-repeat="user in users">
            <td>{{user.FirstName}}</td>
            <td>{{user.LastName}}</td>
        </tr>

    </table>

名字
姓
{{user.FirstName}
{{user.LastName}
调试视图时未定义或识别用户,尽管“Model”是,并且它具有正确的值“我在找。我熟悉razor语法,并通过razor获取模型或检查模型,但如果我想执行上面的foreach循环,但使用ng repeat,该怎么办。如何确保控制器提供了正确的模型参考


其中,用户是我从中获取数据的模型,这些数据将被持久化

Razor在服务器上执行,angular在客户端执行。因此,您不能简单地在客户端代码中访问服务器端模型

您可以做的是,在razor视图中,序列化模型并创建数据的json表示,然后使用
提供程序将此对象注入angular controller

在你看来

@model YourViewModel
<div ng-app="app" ng-controller="ctrl as vm">
    <table style="margin-top:20px" cellpadding="2" cellspacing="2" border="1">
        <tr>
            <th>First Name</th>
            <th>Last Name</th>
        </tr>
        <tr ng-show="vm.users != null" ng-repeat="user in vm.users">
            <td>{{user.Name}}</td>
            <td>{{user.Name}}</td>
        </tr>    
    </table>
</div>
@section Scripts{   
  <script src="~/Scripts/YourAngularController.js"></script>    
  <script>
    var m = angular.module("app")
         .value("pageModel",@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)));

  </script>    
}

您不能将模型属性用于angular,因为这些属性在服务器端渲染,angular在客户端渲染。如何将模型数据从服务器传递到客户端?如何让Angular了解我的模型?我的意思是我想使用ng repeat在我的模型上迭代是的。但现在您的问题是如何将您的服务器端模型呈现为javasript(AngularJS)可以迭代的内容。因此,您必须首先将模型渲染到一个数组中,然后从这里开始使用ngRepeat进行迭代。
var app = angular.module("app", []);
var ctrl = function (pageModel) {

    var vm = this;
    vm.users = pageModel; //assuming pageModel is a list of users

};
app.controller("ctrl", ctrl);