Web/ASP.NET
[ASP.NET] ASP.NET MVC2 Site 만들기 (3)
WooGong Peter
2010. 6. 8. 13:29
[.NET/ASP.NET] - [ASP.NET] ASP.NET MVC2 Site 만들기 (1)
[.NET/ASP.NET] - [ASP.NET] ASP.NET MVC2 Site 만들기 (2)
이번엔 Controller 에 대해 알아보도록 하겠습니다.
기존의 ASP.NET Web Appliction 의 사용자 상호작용(User interaction)은 Page 를 대상으로 조직화되고 이들 페이지의 Event를 발생시키고, 처리하도록 되어있습니다.
반면에 ASP.NET MVC application에서의 User interaction 은 Controller 들과 Controller 가 포함하고 있는 Action 들로 짜여져 있습니다. ASP.NET MVC framework은 Controller 라고 하는 Class 들과 URL을 연결시켜주는데 Controller 는 들어오는 Request 를 처리하고 사용자들의 입력과 상호작용(interaction)을 다루며, 적절한 application 로직을 실행합니다. Controller 는 Request 에 대한 HTML 을 생성하기 위해서 분리된 View Componet 를 호출합니다. MVC application에서 iew는 단순히 정보만을 표시하며 controller 는 사용자들의 입력과 상호작용을 처리하고 응답합니다.
Controller 생성시 주의할 점은 모든 Controller Class 는 반드시 "Controller" 접미사를 붙여야 합니다. 모든 Controller class 는 iController interface 를 구현하거나 Controller base class 를 상속해야 합니다. Controller 는 Action method 를 정의하고 있고 MVC Web application 의 workflow 에서 Controller 의 action method 는 들어오는 web request 를 처리합니다. 이들 Action mehtod 는 parameter 를 받게 되는데 이들 parameter를 이용하여 application code를 실행시키고 database 로 부터 가져온 data object들을 부려주고 수정하며, Browser 에 뿌려주기 위해 View 를 결정하는 역할을 합니다.
그럼 HomeController 가 어떻게 생겼나 살펴보도록 하지요.
클래스 위에 보이는 HandleError() 라는 Attriute filter 는 MVC application 이 동작하다 발생하는 경우 친숙한 에러를 보여주기위해 Controller 나 Action Method 위에 명시적으로 표시해줍니다.
각 Method 명은 요청받은 URL 을 통해 Action 에 연결됩니다. action method 가 호출가능하려면 public 이어야 하고 NonActionAttribute 속성을 가지고 있지 않아야 합니다.
action method 로 사용하려면
method 는 반드시 public 이어야 합니다.
method 는 static method 일 수 없습니다.
method 는 extension method 가 될 수 없습니다.
method 는 constructor, getter, setter일 수 없습니다.
method 는 generic types을 포함할 수없습니다.
method is controller base class의 method 가 아니어야 합니다.
method ref 나 out parameter를 가질 수 없습니다.
등과 같은 제약이 따릅니다.
Action Method 는 ActionResult instance를 반환해야합니다. action result 는 browser 요청에 대한 응답에서 모든 실행을 마친후에 Controller action 이 반환하는 것입니다.
ActionResult 에는 View randering, 다른 action 으로의 redirecting, 다른 페이지로의 redirecting 등이 포함됩니다.
ASP.NET MVC framework 은 다음과 같은 몇가지 타입의 acion result 를 지원합니다.
ViewResult, EmptyResult, RedirctResult, JsonResult, JavaScriptResult, ContentResult, FileContentResult, FilePathResul, FilestreamResult
여기서는 ViewResult()를 반환하지 않고 Controller base Class의 View() Method 를 반환하고 있는데 주로 ActionResult 를 직접 반환하지 않고 다음과 같은 Controller base Class 의 Method들중 하나를 반환합니다.
View(), Redirect(), RedirectToAction(), RedirectoRoute(), Json(), JavaScriptResult(), Content(),File()등입니다.
그리고 View 에 Data를 전달하기 위해서 위코드에서 보는 바와 같이 Controller base class 의 ViewData Property을 사용할 수 있습니다.
ViewDtaDictionar 는 대소문자를 구분하는 문자열을 Key로 사용합니다.
흠...
대략적인 Controller 의 내용을 살펴봤습니다.
아래 링크를 통해 더욱 자세한 내용을 살펴보시기 바랍니다.
http://www.asp.net/mvc/tutorials/asp-net-mvc-controller-overview-cs
제가 적은 위 내용들은 위 페이지 내용과 hands on lab을 정리한 것입니다.
[.NET/ASP.NET] - [ASP.NET] ASP.NET MVC2 Site 만들기 (2)
이번엔 Controller 에 대해 알아보도록 하겠습니다.
기존의 ASP.NET Web Appliction 의 사용자 상호작용(User interaction)은 Page 를 대상으로 조직화되고 이들 페이지의 Event를 발생시키고, 처리하도록 되어있습니다.
반면에 ASP.NET MVC application에서의 User interaction 은 Controller 들과 Controller 가 포함하고 있는 Action 들로 짜여져 있습니다. ASP.NET MVC framework은 Controller 라고 하는 Class 들과 URL을 연결시켜주는데 Controller 는 들어오는 Request 를 처리하고 사용자들의 입력과 상호작용(interaction)을 다루며, 적절한 application 로직을 실행합니다. Controller 는 Request 에 대한 HTML 을 생성하기 위해서 분리된 View Componet 를 호출합니다. MVC application에서 iew는 단순히 정보만을 표시하며 controller 는 사용자들의 입력과 상호작용을 처리하고 응답합니다.
Controller 생성시 주의할 점은 모든 Controller Class 는 반드시 "Controller" 접미사를 붙여야 합니다. 모든 Controller class 는 iController interface 를 구현하거나 Controller base class 를 상속해야 합니다. Controller 는 Action method 를 정의하고 있고 MVC Web application 의 workflow 에서 Controller 의 action method 는 들어오는 web request 를 처리합니다. 이들 Action mehtod 는 parameter 를 받게 되는데 이들 parameter를 이용하여 application code를 실행시키고 database 로 부터 가져온 data object들을 부려주고 수정하며, Browser 에 뿌려주기 위해 View 를 결정하는 역할을 합니다.
그럼 HomeController 가 어떻게 생겼나 살펴보도록 하지요.
1 <HandleError()> _
2 Public Class HomeController
3 Inherits System.Web.Mvc.Controller
4
5 Function Index() As ActionResult
6 ViewData("Message") = "Welcome to ASP.NET MVC!"
7
8 Return View()
9 End Function
10
11 Function About() As ActionResult
12 Return View()
13 End Function
14 End Class
클래스 위에 보이는 HandleError() 라는 Attriute filter 는 MVC application 이 동작하다 발생하는 경우 친숙한 에러를 보여주기위해 Controller 나 Action Method 위에 명시적으로 표시해줍니다.
각 Method 명은 요청받은 URL 을 통해 Action 에 연결됩니다. action method 가 호출가능하려면 public 이어야 하고 NonActionAttribute 속성을 가지고 있지 않아야 합니다.
action method 로 사용하려면
등과 같은 제약이 따릅니다.
Action Method 는 ActionResult instance를 반환해야합니다. action result 는 browser 요청에 대한 응답에서 모든 실행을 마친후에 Controller action 이 반환하는 것입니다.
ActionResult 에는 View randering, 다른 action 으로의 redirecting, 다른 페이지로의 redirecting 등이 포함됩니다.
ASP.NET MVC framework 은 다음과 같은 몇가지 타입의 acion result 를 지원합니다.
ViewResult, EmptyResult, RedirctResult, JsonResult, JavaScriptResult, ContentResult, FileContentResult, FilePathResul, FilestreamResult
여기서는 ViewResult()를 반환하지 않고 Controller base Class의 View() Method 를 반환하고 있는데 주로 ActionResult 를 직접 반환하지 않고 다음과 같은 Controller base Class 의 Method들중 하나를 반환합니다.
View(), Redirect(), RedirectToAction(), RedirectoRoute(), Json(), JavaScriptResult(), Content(),File()등입니다.
그리고 View 에 Data를 전달하기 위해서 위코드에서 보는 바와 같이 Controller base class 의 ViewData Property을 사용할 수 있습니다.
ViewDtaDictionar 는 대소문자를 구분하는 문자열을 Key로 사용합니다.
흠...
대략적인 Controller 의 내용을 살펴봤습니다.
아래 링크를 통해 더욱 자세한 내용을 살펴보시기 바랍니다.
http://www.asp.net/mvc/tutorials/asp-net-mvc-controller-overview-cs
제가 적은 위 내용들은 위 페이지 내용과 hands on lab을 정리한 것입니다.
행복한 고수되십시요.
woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형