2016-05-31 4 views
0

Я получаю сообщение об ошибке при попытке получить данные из базы данных SQL Server и есть более 1 таблицы с внешним ключом.ASP.NET MVC - получить данные с SQL Server с помощью angularJS

Контроллер:

private DbContext db = new DbContext(); 

public JsonResult GetAll() 
{ 
     var result = db.Books.ToList(); 
     return Json(result, JsonRequestBehavior.AllowGet); 
} 

Service.js:

var Service = {}; 

Service.getAll = function() { 
     return $http.get('BooksModels/GetAll'); 
}; 

Controller.js:

getAll(); 

function getAll() { 
    ToshokanService.getAll() 

    .success(function (an) { 
     $scope.books = an; 
     console.log($scope.books); 
    }) 
     .error(function (error) { 
      $scope.status = 'Error' + error.message; 
      console.log($scope.status); 
     }); 
} 

Ошибка: "Errorundefined"

Это работает, когда я только одна таблица в базе данных.

Это хорошая идея для извлечения данных из базы данных с помощью AngularJS в ASP.NET MVC?

+0

Что ошибка? где именно вы получаете ошибку? Ошибка – Sefa

+0

: «Errorundefined». В GET http: // localhost/BooksModels/GetAll – VMG

+0

У вас возникла эта проблема, когда у вас есть две таблицы в вашей базе данных? Вы отлаживали ваш контроллер? Можете ли вы подтвердить, что ваш контроллер mvc получает данные из базы данных при наличии нескольких таблиц? – Sefa

ответ

1

Если ошибка, так как таблица имеет внешний ключ, при возвращении Json вы должны использовать «выбрать», как этого

public JsonResult GetLocationJson() { 
      var result = (from p in General.DBCtx.Locations.ToList() 
          select new { ID = p.ID, Name = p.Name, Keyword = p.Keyword, Path=p.Path,Des=p.Descript,ParentID=p.ParentID } 
         ).ToList(); 
      return Json(result, JsonRequestBehavior.AllowGet); 
     } 

Есть много способов сделать исправить эту ошибку, но это простой способ Если вы этого не сделаете хотите помешать классу Entity с помощью Assembly.

+0

, если вы хотите получить данные из другой таблицы, см. В *** 'var result = (из p в General.DBCtx.Locations.ToList() выберите новый {ID = p.ID, Name = p.Name, Keyword = p.Keyword, Path = p.Path, Des = p.Descript, ParentID = p.ParentID, *** parent = p.Location1 == null? null: new {Id = p.Location1.ID, Name = p.Location1.Name} ***,} ) .ToList(); ' –

+0

Thank You: D It Works – VMG

0

Вы пытались использовать then вместо success? Как так:

ToshokanService.getAll().then(function (an) { 
     $scope.books = an; 
     console.log($scope.books); 
    }) 

Вы можете прочитать об этом here

Смежные вопросы