Json在mvc db中缺少模型名称

时间:2015-10-26 15:33:19

标签: angularjs json asp.net-mvc

使用实体框架我缩放了模型'beer.cs'

  public class Beer
  {
    [Key]
    public int ID { get; set; }
    public bool HasTasted {get; set; }
    public string Name { get; set; }
  }

我从BeersController获取自动代码并将其切换为输出Json

   public ActionResult Index()
   {
        return View(db.Beers.ToList());
   }

    public ActionResult IndexVM()
    {
        return Json(db.Beers.ToList(), JsonRequestBehavior.AllowGet);
    }

现在的问题是,我正在让json没有模型名称,所以它看起来像这样

[{"ID":1,"HasTasted":true,"Name":"Root Beer Ale"},{"ID":2,"HasTasted":false,"Name":"Dragons Breath"},{"ID":3,"HasTasted":false,"Name":"ScAles"},{"ID":4,"HasTasted":true,"Name":"Dragons Breath"}]

我相信这是因为它没有渲染我的ng-repeat模型。

 <p>{{model | json}}</p>
    <table class="table">
        <tr ng-repeat="beer in model.Beers">

是否有其他方法可以使用ng-repeat或可能将db.Beers.ToList()更改为能够为我提供模型名称的其他内容?

BeerCtrl.js

angular.module('AngularDemo.BeerController', [])
.controller('BeerCtrl', [
    '$scope', '$http', function ($scope, $http) {
        $scope.model = {};

        $http.get('/Beers/IndexVM').success(function (data) {
            $scope.model = data;
    });
}]);

1 个答案:

答案 0 :(得分:1)

尝试

ng-repeat="beer in model"

属性Beers不存在 - 从控制器读取的数据被设置到model中,model充当对象数组。因此,您可以在访问啤酒数据时迭代 cbid:string ='someValue'; window[cbid] = (meta: any) => { tempThis.meta = meta; window[cbid] = undefined; var e = document.getElementById(cbid); e.parentNode.removeChild(e); if (meta.errorDetails) { return; } };