2016-08-25 4 views
0

Возвращение модели View к моему из моего веб-api в мой угловой интерфейс и я не получаю никаких данных. Отклик: @ odata.context: { "http://localhost:4141/odata/ $ метаданных # Inspection/$ объект", идентификатор: 0}Нет данных, появляющихся из веб-api-вызова на угловой фронт при возврате модели просмотра с использованием Odata

, но он также должен быть возвращающая список инспекторов и инспекций. Объект создается на стороне Api правильно, но не переходит в мой интерфейс?

Угловая Код:

function getInspections() { 
      inspectionService.getByCompanyId(vm.company.id).then(
       function (response) { 
        console.log(response) 
        vm.inspection = response.value; 
       }) 
      }; 

код API

public async Task<InspectionDetailViewModel> GetByCompanyId([FromODataUri] string id) 
    { 

     Guid companyId; 

     var valid = Guid.TryParse(id, out companyId); 
     if (valid) 
     { 
      var inspection = GetAllInspections(companyId) 
       var inspectors = await GetAllInspectors(); 
      var ins = new InspectionDetailViewModel() 
      { 
       Inspections = inspection, 
       Inspectors = inspectors 

      }; 

      return ins; 
     } 

     // return BadRequest("Invalid Company Id"); 
    } 

ViewModel:

public class InspectionDetailViewModel 
{ 

    [Key] 
    public int Id { get; set; } 
    public List<InspectionDto> Inspections { get; set; } 
    public List<Inspector> Inspectors { get; set; } 

} 

OData Builder:

builder.EntitySet<InspectionDetailViewModel>("Inspection"); 
     builder 
      .EntityType<InspectionDetailViewModel>() 
      .Collection 
      .Function("GetByCompanyId") 
      .ReturnsCollectionFromEntitySet<InspectionDetailViewModel>("Inspection") 
      .Parameter<string>("Id"); 

Таким образом, он возвращает идентификатор, но никаких других данных, даже несмотря на то, что данные находятся на веб-api в момент возврата.

Любые идеи?

ответ

0

Кажется, что инспекции и инспекторы построены как тип Entity, в модели есть идентификатор или ключ? вам нужно использовать $expand получить навигационное свойство расширяться как:

?$expand=Inspections,Inspectors 

Если вы хотите, чтобы они с помощью сложного типа, вам нужно явно вызывать как:

builder.ComplexType<Inspector>(); 
+0

относятся к этому вопросу? http://stackoverflow.com/questions/17491054/how-to-use-angular-location-to-set-my-new-url-location-by-changing-its-key-valu –

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

  • Нет связанных вопросов^_^