2017-11-18 13 views
0

내보기에 익명 형식을 보내려고합니다.익명 형식 (목록)을 ASP.NET 코어에서 보도록 보냄

익명 유형은 다음과 같은 방식으로 구성되어이 경우의

public async Task<IActionResult> Historial() 
    { 
     return View(await _context.HechosLiquidador 
      .Select(c => new { Store = c.StoreID, LiqDate = c.FechaLFinLiq}).Distinct() 
      .AsNoTracking().OrderBy(s => s.LiqDate).ToListAsync()); 
    } 

특수성은 조회의 결과가 항목의 목록 것입니다. 이것을 뷰에 어떻게 전달할 수 있습니까?

ViewModel을 구성해야합니까? 이 경우 해당 뷰 모델에이 쿼리의 결과를 채우려면 어떻게해야합니까?

답변

0

내 솔루션은 ViewModel 방식으로 진행됩니다.

뷰 모델을 정의

우리는 우선 나열 할 항목을 선택한 다음 해당 항목을 포함하는 객체를 통해 반복 얻고로 하나 하나를 추가합니다 : 컨트롤러에서

public class HistorialIndexData 
{ 
    public string StoreName { get; set; } 

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
    public DateTime FechaLFinLiq { get; set; } 
} 

을 ViewModel 개체를 만들고 새 목록을 만듭니다.

public async Task<IActionResult> Historial() 
    { 
     List<HistorialIndexData> newHistorial = new List<HistorialIndexData>(); 
     var items = await _context.HechosLiquidador.Include(s => s.Stores) 
      .Select(c => new { Store = c.Stores.StoreName, LiqDate = c.FechaLFinLiq }).Distinct() 
      .AsNoTracking().OrderBy(s => s.LiqDate).ToListAsync(); 

     foreach(var itemtolist in items) 
     { 
      HistorialIndexData info = new HistorialIndexData 
      { 
       StoreName = itemtolist.Store, 
       FechaLFinLiq = itemtolist.LiqDate 
      }; 
      newHistorial.Add(info); 
     } 

     return View(newHistorial); 
    } 

새 ViewModel 목록과 함께 작동하도록보기를 업데이트하십시오.

@model List<Application.Models.ApplicationviewModels.HistorialIndexData> 

완료!