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