7. 이번에는 뷰 컴포넌트(View Component)라는 개념을 미리보기로 살펴보자. 프로젝트에 ViewComponents라는 폴더를 생성하고, 이곳에 DataListViewComponent.cs라는 클래스 파일을 만든다. 이 클래스 파일에 ViewComponent 클래스로부터 상속 받는 코드를 작성한다. 조금 복잡해 보일 수 있으나, 특정 이름에 해당하는 데이터를 받아 뷰 컴포넌트 전용 뷰 페이지에 전송해서 사용하게 하는 코드다. 뷰 컴포넌트는 이번 실습에서 미리보기로 한 번 만들어 보고, 뒤에서 더 자세히 다루겠다.

    ▼  ViewComponents/DataListViewComponent.cs

    using DotNetNote.Models;
    using Microsoft.AspNetCore.Mvc;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    
    namespace DotNetNote.ViewComponents
    {
      public class DataListViewComponent : ViewComponent
      {
          public async Task<IViewComponentResult> InvokeAsync(string name)
          {
              var data = await GetByNameAsync(name);
              return View(data);
          }
          
          private Task<IEnumerable<Data>> GetByNameAsync(string name)
          {
              return Task.FromResult(GetByName(name));
          }
          
          private IEnumerable<Data> GetByName(string name)
          {
              DataService service = new DataService();
              return service.GetDataByName(name);
          }
      }
    }
    

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.