더북(TheBook)

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 액션 메서드로 이동시켜 준다.

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