더북(TheBook)

2. Views 폴더에 CommunityCamp 폴더를 생성한다. 이곳에 Index.cshtml이라는 이름으로 MVC 뷰 페이지를 생성하고, 다음과 같이 코드를 작성한다. 두 커뮤니티 사이트에 대한 정보를 문자열로 조회해 참여자와 대기자 리스트를 출력하도록 설정했다. 선착순 15명까지만 등록자로 리스트를 출력하고, 나머지는 대기자 리스트에 출력하는 코드다.

▼  /Views/CommunityCamp/Index.cshtml

@using DotNetNote.Models

@{
  ViewData["Title"] = "커뮤니티 캠프";
}

@model List<CommunityCampJoinMember>

<h1>ASP.NET Core 1.0 학습용 데모 사이트입니다.</h1>

<h2>참가자 리스트</h2>

<a asp-controller=“CommunityCamp” asp-action=“Create”
 class=“btn btn-info”>참가 등록하기</a>
<hr />

@<div class=“lead”>
  참여 등록이 마감되었습니다.
  만약, 참여자 중 취소하시는 분들이 계시면,
  대기자 리스트 분에게 연락드리도록 하겠습니다.
  본 사이트는 행사 전에 DB 완전 초기화될 것입니다.
  감사합니다.
</div>
<hr />@

<div class=“row”>
  <div class=“col-md-6”>
      <div class=“panel panel-default”>
          <div class=“panel-heading”>ASP.NET Korea 참여자 리스트</div>
          <div class=“panel-body”>
              @foreach (var aspnetkorea in Model.Where(m => m.CommunityName
      == “ASP.NET Korea”).OrderBy(m => m.Id).Take(15))
              {
                  <div class=“col-md-3”>
                      @aspnetkorea.Name
                      <a asp-controller=“CommunityCamp” asp-action=“Delete”
                         title=“취소”>
                          <i class=“glyphicon glyphicon-remove-sign”></i>
                      </a>
                  </div>
              }
          </div>
      </div>
  </div>
  <div class=“col-md-6”>
      <div class=“panel panel-default”>
          <div class=“panel-heading”>
              Taeyo.NET 참여자 리스트
          </div>
          <div class=“panel-body”>
              @foreach (var taeyonetkorea in Model.Where(m => m.CommunityName
      == “Taeyo.NET”).OrderBy(m => m.Id).Take(15))
              {
                  <div class=“col-md-3”>
                      @taeyonetkorea.Name
                      <a asp-controller=“CommunityCamp” asp-action=“Delete”
                         title=“취소”>
                          <i class=“glyphicon glyphicon-remove-sign”></i>
                      </a>
                  </div>
              }
          </div>
      </div>
  </div>
</div>
<div class=“row”>
  <div class=“col-md-6”>
      <div class=“panel panel-default”>
          <div class=“panel-heading”>ASP.NET Korea 대기자 리스트</div>
          <div class=“panel-body”>
              @foreach (var aspnetkorea in Model.Where(m => m.CommunityName
      == “ASP.NET Korea”).OrderBy(m => m.Id).Skip(15).Take(25))
              {
                  <div class=“col-md-3”>
                      @{
                          var aspName = aspnetkorea.Name[0].ToString() + ““
                              + aspnetkorea.Name.Substring(
                                  aspnetkorea.Name.Length - 1);
                      }
                      @aspName
                      <a asp-controller=“CommunityCamp” asp-action=“Delete”
                         title=“취소”>
                          <i class=“glyphicon glyphicon-remove-sign”></i>
                      </a>
                  </div>
                          }
          </div>
      </div>
  </div>
  <div class=“col-md-6”>
      <div class=“panel panel-default”>
          <div class=“panel-heading”>
              Taeyo.NET 대기자 리스트
          </div>
          <div class=“panel-body”>
              @foreach (var taeyonetkorea in Model.Where(m => m.CommunityName
      == “Taeyo.NET”).OrderBy(m => m.Id).Skip(15).Take(25))
              {
                  <div class=“col-md-3”>
                      @{
                          var taeyoName = taeyonetkorea.Name[0].ToString() + “” +
                              taeyonetkorea.Name.Substring(
                                  taeyonetkorea.Name.Length - 1);
                      }
                      @taeyoName
                      <a asp-controller=“CommunityCamp” asp-action=“Delete”
                          title=“취소”>
                          <i class=“glyphicon glyphicon-remove-sign”></i>
                      </a>
                  </div>
                          }
          </div>
      </div>
  </div>
</div>

@section Scripts {
  @if (TempData[“Message”] != null)
  {
      <script>
          toastr.info(’@TempData[“Message”]’);
      </script>
  }
}

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