{{project.ProjectName}}
не показывает никаких данных в моем браузере. У меня есть данные в db, у меня есть необходимые файлы сценариев ref'd в моем _Layout и ng-app="myApp"
в теле. Отладка контроллера возвращает 1 строку данных. Не уверен, что я делаю неправильно. Он должен показать 1 строку с именем проекта.
контроллер:
public ActionResult Index()
{
return View();
}
public JsonResult GetAllProjects()
{
EEDBEntities db = new EEDBEntities();
var result = db.Projects.ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
App.js:
var myApp = angular.module('myApp', []);
myApp.controller('mainController', function($scope, $http) {
$http.get('/home/GetAllProjects')
.success(function(result) {
$scope.projects = result;
})
.error(function(data) {
console.log(data);
});
});
Index.cshtml:
<h3>
All Projects
</h3>
<div ng-controller="mainController">
<table class="table table-striped">
<tr ng-repeat="project in projects">
<td>{{project.ProjectName}}</td>
<td class="text-right">
<button class="btn-danger">X</button>
</td>
</tr>
</table>
</div>
Попробуйте поместить это в свой конструктор EF DbContext
base.Configuration.ProxyCreationEnabled = false;
Предполагая, что вы сначала выполняете EF-код.
public YourDbContext()
: base("name=ConnectionString")
{
base.Configuration.ProxyCreationEnabled = false;
}
Он может быть исправлен, если вы используете ViewModel вместо отправки данных Entity Framework в свой вид.
Как и в вашем примере, вам кажется, что вам нужно свойство ProjectName
, которое будет выглядеть примерно так:
public JsonResult GetAllProjects()
{
EEDBEntities db = new EEDBEntities();
var result = db.Projects.Select(p => new {
p.ProjectName
//add other properties if you need to
}).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
Приведенный пример с анонимным объектом, но вы также можете использовать реальный ViewModel, просто измените Select()
на следующее:
var result = db.Projects.Select(p => new ProjectViewModel {
ProjectName = p.ProjectName
//add other properties if you need to
}).ToList();
{{projects}}
чтобы проверить, загруженыprojects
или нет.?