더북(TheBook)

11. Index.cshtml 뷰 페이지에 전체 할 일 리스트를 출력하는 코드를 작성한다. 이 코드는 @model 키워드로 컨트롤러로부터 List<T> 형태의 데이터를 전송 받아 Model 개체에 담은 후 반복 구문으로 데이터를 반복해서 원하는 UI에 담아 출력하는 방식으로 리스트 페이지를 구현한다.

▼  ~/Views/Task/Index.cshtml

@model List<DevMvcTaskList.Models.TaskModel>
 
@{
  ViewBag.Title = "Index";
}

<h2>할 일 리스트</h2>
 
<table class="table table-bordered table-condensed table-striped table-hover">
  <tr>
      <th>Id</th>
      <th>제목</th>
      <th>생성일</th>
      <th>완료</th>
  </tr>
  @foreach (var task in Model)
  {
      <tr>
          <td>@task.Id</td>
          <td>
              @if (@task.IsCompleted)
              {
                  <s>@task.Title</s>
              }
              else
              {
                  <text>@task.Title</text>
              }
          </td>
          <td>@task.CreationDate.ToShortDateString()</td>
          <td>
              <a href="/Task/Complete/@task.Id.ToString()">
                  @if (task.IsCompleted)
                  {
                      <text>되돌리기</text>
                  }
                  else
                  {
                      @:완료하기
                  }
              </a>
          </td>
      </tr>
  }
</table>


<a href="/Task/Create">등록</a>

 

레이저 표현식은 @ 기호를 통해서 뷰 페이지를 구성한다. 레이저 표현식은 <text> 태그 안의 텍스트를 직접 출력할 수 있다. 레이저 표현식의 @: 표현은 <text> 태그와 동일하다. 레이저 표현식에 대한 좀 더 자세한 내용은 ASP.NET Core 1.0을 학습할 때 다시 학습하도록 하자.

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