Controller, View
이전 시간에는 url을 통해 서버로 파라미터를 전달했다. 이번 시간에는 view 화면을 만들어서 사용자가 input창에 입력한 값을 Controller로 전달해보자 .
예제
1. Views 폴더 생성
이 폴더는 웹페이지의 화면에 해당하는 파일들이 저장된다. ASP.NET Core mvc에서는 Razor View가 사용된다.
* Razor View에는 HTML 태그와 C# 프로그래밍 언어를 사용할 수 있다.
2. index.cshtml
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" >
<meta http-equiv="X-UA-Compatible" comtent="IE=edge" >
<meta name="viewport" content="width=device-width", initial-scale=1.0">
<title>Document</title>
</head>
<body>
hello asp.net!!
</body>
</html>
=> 일반 html 페이지와 유사하다. html에서 사용되는 표준 요소를 사용할 수 있으며, css 파일, script와도 연결할 수 있다.
그러나 실제 html 파일은 아니며 빌드로 컴파일된 후에 사용자가 프라우저에서 볼 수 있는 html페이지로 변환해서 보여준다.
3. program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
//Controller를 사용한 경로 매핑
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"
);
app.Run();
=> builder.Services.AddControllersWithViews();
이 부분을 수정했다. 이렇게 하면 View가 있는 Controller이 웹 애플리케이션에 연결된다.
4. HomeController.cs
아래 내용 추가
public IActionResult Test() {
return View("~/Views/index.cshtml"); // 사용자 요청에 대한 응답으로 ViewResult를 return
}
실행결과
예제
1. HomeController의 Test() 메서드에서 리턴 값의 경로를 생략하는 방법도 있다.
index.cshtml을 Home 폴더를 만들이 이 하위에 위치시킨다.
여기서 index.cshtml 의 파일명을 Controller의 메서드명과 동일하게 Test.cshtml로 변경해보자.
2. HomeController 수정
Test() 메서드의 리턴값을 지운다
public IActionResult Test() {
return View(); // 사용자 요청에 대한 응답으로 ViewResult를 return
}
=> HomeController의 메서드명과 razor 페이지의 이름을 동일하게 하면 알아서 view page를 찾게된다.
'웹 개발 > ASP .NET' 카테고리의 다른 글
[ASP.NET MVC5] 웹 페이지 렌더하기 (0) | 2024.11.25 |
---|---|
[ASP.NET MVC5] 프로젝트 생성과 Hello World 출력하기 (0) | 2024.11.25 |
[ASP.NET] Controller:query string을 통해 데이터 조회 (0) | 2024.09.30 |
[ASP.NET] 프로젝트 생성 (0) | 2024.09.15 |
[ASP.NET] 개발 환경 이해하기 (1) | 2024.09.15 |