티스토리 뷰
조회화면을 하나 새로 추가하겠습니다
일단, 좀 정리부터 하죠
HomeController에서 Create를 제외한 나머지 Action은 모두 지웁니다
HomeController.cs
public class HomeController : Controller
{
/// <summary>
/// Todo 리스트 객체 (DB대체)
/// </summary>
public static List<Todo> TodoList = new List<Todo>();
public ActionResult Create()
{
return View(new Todo());
}
[HttpPost]
public ActionResult Create(Todo todo)
{
todo.No = TodoList.Count > 0 ? TodoList.Max(x => x.No) + 1 : 1;
TodoList.Add(todo);
return View();
}
}
마찬가지로 View/Home 폴더에서 Create를 제외한 파일을 삭제합니다
이제 조회화면을 추가하겠습니다
먼저, HomeController에 action을 추가합니다
조회화면은 제일 처음에 나오는 화면이니 이름을 Index로 하죠
HomeController.cs
...
public ActionResult Index()
{
return View(TodoList);
}
...
-
할일 목록을 보여줘야 하니 TodoList를 매개변수로 페이지에 넘겨 줍니다
Views/Home 폴더에 Index.cshtml을 생성합니다
Index.cshtml
@model List<TodoListRazor.Models.Todo>
...
<body>
<div>
@Html.ActionLink("새 할일", "Create")
@Html.ActionLink("할일 목록", "Index")
</div>
<br />
할일목록
<table>
<tr>
<th>번호</th>
<th>내용</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>@item.No</td>
<td>@item.Contents</td>
</tr>
}
</table>
</body>
...
-
페이지에서 사용할 model을 선언합니다 (action에서 할일 목록을 넘겼습니다)
-
Create.cshtml과 동일하게 ActionLink를 넣습니다
-
할일목록을 보여줄 table을 생성합니다
-
@foreach를 통해서 출력을 반복할 수 있습니다
-
Model은 action에서 넘어온 model을 의미합니다
F5를 눌러 화면을 띄워볼까요?
처음에는 이렇게 아무 내용도 없지만
[새 할일] 링크를 눌러 할일을 몇 개 입력하고 [할일 목록]으로 돌아오면 입력한 할일이 나타납니다
그런데, 새 할일을 저장한 후에 입력화면이 그대로 유지되니까 답답하죠?
할일 저장후에 할일 목록 화면으로 넘어오도록 수정하겠습니다
HomeController.cs
...
[HttpPost]
public ActionResult Create(Todo todo)
{
todo.No = TodoList.Count > 0 ? TodoList.Max(x => x.No) + 1 : 1;
TodoList.Add(todo);
return RedirectToAction("Index");
}
...
Index로 Redirect되도록 수정하였습니다
다시 화면을 열어 할일을 입력해 보면 할일 목록화면으로 넘어가는 것을 확인할 수 있습니다
'Dev 일반 > ASP.NET Razor' 카테고리의 다른 글
[ASP.NET Razor] 8. Layout 사용하기 (0) | 2019.05.10 |
---|---|
[ASP.NET Razor] 7. Todo 삭제하기 (0) | 2019.05.10 |
[ASP.NET Razor] 5. Todo 입력화면 만들기 (0) | 2019.05.10 |
[ASP.NET Razor] 4. 모델 만들기 (0) | 2019.05.09 |
[ASP.NET Razor] 3. 프로젝트 만들기 (0) | 2019.05.09 |