본문 바로가기

웹 개발/ASP .NET

[ASP.NET MVC5] 웹 페이지 렌더하기

이전 포스팅에서는 컨트롤러에서 단순히 문자열을 반환했다. 하지만 웹 애플리케이션의 핵심은 브라우저 요청에 HTML 응답을 생성하는 것이다. 이를 위해 ASP.NET MVC 5에서는 **뷰(View)**가 필요하다. 이번 포스팅에서는 뷰를 생성하고 렌더해보자. 

 

뷰 생성과 렌더링


컨트롤러 코드부터 시작해보자.

using System.Web.Mvc;

namespace PartyInvite.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ViewResult Index()
        {
            return View();
        }
    }
}

return 값을 View()로 변경했다. 이 변경으로 인해 액션 메서드가 ViewResult 객체를 반환하게 되며, ASP.NET MVC는 해당 뷰를 렌더링한다.

 

오류


이 상태에서 애플리케이션을 실행하면, 아래와 같은 오류가 발생한다.

 

이 메시지는 MVC가 Views 폴더에서 Index라는 이름의 파일을 찾으려고 시도했지만, 파일이 없어서 발생한 것이다.

 

 

뷰 파일 생성


뷰 파일을 생성하려면 다음 단계를 따른다:

  1. HomeController.cs에서 Index 메서드 위에서 마우스 우클릭.
  2. **'뷰 추가(Add View)'**를 선택.

 

 

 기본 뷰 파일 내용


 Index.cshtml의 기본 내용은 아래와 같다:

 

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
    </div>
</body>
</html>

 

이 파일은 대부분 HTML로 구성되어 있다.
@{} 안에 있는 코드는 Razor 뷰 엔진에서 해석된다. Razor는 HTML과 C# 코드를 섞어서 작성할 수 있도록 지원하며, 브라우저로 전송될 HTML을 생성한다.

 

div 내용을 수정한 뒤 실행해보자.

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        Hello World
    </div>
</body>
</html>

 

실행 결과


 위와 같이 작성한 뒤 애플리케이션을 실행하면, 브라우저에 **"Hello World"**가 출력되는 것을 확인할 수 있다.

 

 

정리


이전 포스팅에서는 컨트롤러에서 단순 문자열을 반환했지만, 이번에는 ViewResult를 반환하도록 변경했다.
이를 통해 ASP.NET MVC 프레임워크가 뷰를 렌더하고, 결과적으로 브라우저에 HTML 응답을 반환하는 과정을 확인할 수 있었다.

Razor 뷰 엔진은 ASP.NET MVC의 중요한 부분이며, 뷰에서 HTML과 C# 코드를 조합하는 데 사용된다. Razor의 자세한 활용은 이후 포스팅에서 다룰 예정이다.