7. TaskController.cs 파일을 다음과 같이 작성한다. 기본 생성 코드를 모두 지우고 작성하는 것을 원칙으로 한다. 모델과 리파지터리 클래스를 바탕으로 각각의 기능을 표현할 뷰 페이지를 호출할 액션 메서드를 TaskController에서 다음과 같이 구현한다. 할 일 등록 관련 Create()CreateProcess() 액션 메서드는 편의상 이름을 달리했다. 일반적으로 [HttpGet][HttpPost] 특성을 사용해 보여주는 액션 메서드와 전송된 데이터를 처리하는 액션 메서드의 이름을 같이 사용한다.

    ▼  ~/Controllers/TaskController.cs

    using DevMvcTaskList.Models;
    using System.Web.Mvc;
     
    namespace DevMvcTaskList.Controllers
    {
      public class TaskController : Controller
      {
          private TaskRepository repo = new TaskRepository();
          
          // 할 일 목록 표시
          public ActionResult Index()
          {
              // 리스트 출력
              var r = repo.GetTasks();
              
              return View(r);
          }
          
          // 할 일 등록
          public ActionResult Create()
          {
              // 등록 폼 출력
              
              return View();
          }
          
          // 등록 페이지에서 넘겨온 데이터 저장
            [HttpPost]
          public ActionResult CreateProcess(string title)
          {
              // 등록 처리: DB에 저장
              repo.AddTask(new TaskModel { Title = title });
              
              return RedirectToAction("Index"); // 리스트로 이동
          }
          
          // 할 일 체크
          public ActionResult Complete(int id)
          {
              // 할 일 삭제 또는 체크 업데이트
              repo.CompleteTask(id);
              
              return RedirectToAction("Index");
          }
      }
    }
    

     

    코드에서 RedirectToAction("Index") 부분은 데이터를 저장한 후 Index 액션 메서드로 이동시켜 준다.

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