coding/asp.net

[asp.net] MVC 이해

사과키라임파이 2022. 4. 25. 23:15

프로 ASP.NET MVC5 프레임워크, 애덤 프리먼 지음

 

MVC 아키텍처에서 전달된 요청은 컨트롤러에 의해 처리됨.

Asp.Net에서 컨트롤러는 단순한 C# 클래스일 뿐이다.

이 클래스가 내장된 System.Web.Mvc.Controller 클래스를 상속받은 파생클래스임.

 

컨트롤러에 존재하는 각각의 public 메서드들은 Action Method라고 함.

웹에서 특정 Url을 요청해서, 이 메서드를 호출하는 방식으로 동작 수행 가능.

 

 

라우트 이해하기

MVC 응용프로그램은 모델, 뷰, 컨트롤러뿐만 아니라 URL이 이 컨트롤러 및 액션과 연결되는 방법을 결정해주는 ASP.NET 라우팅 시스템도 함께 이용해서 실행된다. VS가 MVC프로젝트를 생성하면서 몇가기 기분 라우트를 추가해주기에 기본으로 되어있음. 추후 자세히 알아볼 것.


현재 Controller에서 ActionResult About과 Contact에서 View를 반환하는데, 명시적으로 'About'이라는 뷰를 반환하겠다고 뜨고 있다.

만약 명시적으로 지시하지 않았다면, 명명규약에 따라 자동으로 적절한 뷰가 선택됨. 

(이 규약은 /Views/Home/Contact.cshtml 같이 뷰는 액션메서드와 같은 이름을 가지며, 접미사를 제외한 컨트롤러의 이름과 같은 폴더에 위치한다는 뜻이다.)

위의 RedirectResult Contact()는 Home/About로 이동해준다.

 

위의 about는 컨트롤러에 존재하지 않기에 불가,

아래의 Contact는 해당 컨트롤러(Test)의 Index를 잘 찾아간다.

 

 

이런 다양한 Action Resut(액션 결과를 사용하면, 일반적인 응답을 액션으로 캡슐화시켜서 재사용 가능하다)

응용프로그램으로 들어오는 모든 요청은 컨트롤러에 의해서 처리된다.

모델이나 뷰에서 다루는 작업을 제외한 모든 것을 다룸.

 

컨트롤러는 데이터를 저장하거나 취급하지 않고, 뷰를 만들지도 않음.

컨트롤러는 들어오는 요청을 처리하고 도메인 모델의 동작들을 수행하고, 사용자에게 렌더할 뷰를 선택하는 역할을 한다.

 

MVC에서 특정 데이터를 구성해서 뷰로 전달하는 작업은 컨트롤러의 역할, 뷰는 전달받은 데이터를 html로 렌더링하는 역할임.

컨트롤러에서 뷰로 데이터를 전달할 수 있는 방법 중 하나. Controller 기본 멤버인 ViewBag 개체를 활용하는 것이다.

ViewBag은 동적 개체로 임의의 속성들을 할당할 수 있으며, 바로 뒤이어 렌더되는 모든 뷰에서 사용 가능함.

Razor 표현식임.