컨트롤러 추가(VB)
작성자: Rick Anderson
이 자습서에서는 무료 버전의 Microsoft Visual Studio인 Microsoft Visual Web Developer 2010 Express Service Pack 1을 사용하여 ASP.NET MVC 웹 애플리케이션을 빌드하는 기본 사항을 설명합니다. 시작하기 전에 아래에 나열된 필수 구성 요소를 설치했는지 확인합니다. 웹 플랫폼 설치 관리자 링크를 클릭하여 모두 설치할 수 있습니다. 또는 다음 링크를 사용하여 필수 구성 요소를 개별적으로 설치할 수 있습니다.
- Visual Studio Web Developer Express SP1 필수 구성 요소
- MVC 3 도구 업데이트 ASP.NET
- SQL Server Compact 4.0(런타임 + 도구 지원)
Visual Web Developer 2010 대신 Visual Studio 2010을 사용하는 경우 Visual Studio 2010 필수 구성 요소 링크를 클릭하여 필수 구성 요소를 설치합니다.
VB.NET 소스 코드가 있는 Visual Web Developer 프로젝트를 이 항목과 함께 사용할 수 있습니다. VB.NET 버전을 다운로드합니다. C#을 선호하는 경우 이 자습서의 C# 버전 으로 전환합니다.
MVC는 model-view-controller를 의미합니다. MVC는 각 파트에 별도의 책임이 있도록 애플리케이션을 개발하는 패턴입니다.
- 모델: 애플리케이션의 데이터입니다.
- 보기: 애플리케이션이 HTML 응답을 동적으로 생성하는 데 사용할 템플릿 파일입니다.
- 컨트롤러: 애플리케이션에 들어오는 URL 요청을 처리하고 모델 데이터를 검색한 다음 클라이언트에 응답을 렌더링하는 뷰 템플릿을 지정하는 클래스입니다.
이 자습서에서는 이러한 모든 개념을 다루고 이를 사용하여 애플리케이션을 빌드하는 방법을 보여 줍니다.
솔루션 탐색기 Controllers 폴더를 마우스 오른쪽 단추로 클릭한 다음 컨트롤러 추가를 선택하여 새 컨트롤러를 만듭니다.
새 컨트롤러 이름을 "HelloWorldController"로 지정하고 추가를 클릭합니다.
오른쪽의 솔루션 탐색기 HelloWorldController.cs 이름이 지정된 새 파일이 만들어졌으며 파일이 IDE에서 열려 있음을 알 수 있습니다.
새 public class HelloWorldController
블록 내에서 다음 코드와 같은 두 가지 새 메서드를 만듭니다. 예를 들어 컨트롤러에서 직접 HTML 문자열을 반환합니다.
Namespace MvcMovie
Public Class HelloWorldController
Inherits System.Web.Mvc.Controller
Public Function Index() As String
Return "This is my default action..."
End Function
Public Function Welcome() As String
Return "This is the Welcome action method..."
End Function
End Class
End Namespace
컨트롤러의 이름이 지정 HelloWorldController
되고 새 메서드의 이름이 지정 Index
됩니다. 애플리케이션을 실행합니다(F5 또는 Ctrl+F5 누름). 브라우저가 시작되면 주소 표시줄의 경로에 "HelloWorld"를 추가합니다. (내 컴퓨터에서, 그것은 http://localhost:43246/HelloWorld
) 브라우저는 아래 스크린샷과 같습니다. 위의 메서드에서 코드는 문자열을 직접 반환했습니다. 우리는 단지 몇 가지 HTML을 반환하는 시스템을 말했다, 그것은했다!
ASP.NET MVC는 들어오는 URL에 따라 다른 컨트롤러 클래스(및 해당 클래스 내의 다른 작업 메서드)를 호출합니다. ASP.NET MVC에서 사용하는 기본 매핑 논리는 다음과 같은 형식을 사용하여 호출되는 코드를 제어합니다.
/[Controller]/[ActionName]/[Parameters]
URL의 첫 번째 부분에서는 실행할 컨트롤러 클래스를 결정합니다. 따라서 /HelloWorld 는 클래스에 매핑합니다 HelloWorldController
. URL의 두 번째 부분에서는 실행할 클래스의 작업 메서드를 결정합니다. 따라서 /HelloWorld/Index로 인해 클래스의 메서드가 HelloWorldController
Index
실행됩니다. 위 /HelloWorld만 방문하면 되며 메서드가 Index
기본적으로 사용되었습니다. 이는 명명 Index
된 메서드가 명시적으로 지정되지 않은 경우 컨트롤러에서 호출되는 기본 메서드이기 때문입니다.
http://localhost:xxxx/HelloWorld/Welcome
으로 이동합니다. Welcome
메서드는 "시작 작업 메서드입니다..."라는 문자열을 실행하고 반환합니다. 기본 MVC 매핑은 .입니다 /[Controller]/[ActionName]/[Parameters]
. 이 URL의 경우 컨트롤러는 HelloWorld
메서드이고 Welcome
메서드입니다. URL의 일부를 아직 사용하지 [Parameters]
않았습니다.
URL에서 컨트롤러로 일부 매개 변수 정보를 전달할 수 있도록 예제를 약간 수정해 보겠습니다(예 : /HelloWorld/Welcome?name=Scott&numtimes=4). Welcome
아래와 같이 두 개의 매개 변수를 포함하도록 메서드를 변경합니다. VB 선택적 매개 변수 기능을 사용하여 해당 매개 변수에 대해 값이 전달되지 않으면 매개 변수가 기본값인 1로 설정되어야 함을 numTimes
나타냅니다.
Public Function Welcome(ByVal name As String, Optional ByVal numTimes As Integer = 1) As String
Dim message As String = "Hello " & name & ", NumTimes is: " & numTimes
Return "" & Server.HtmlEncode(message) & ""
End Function
애플리케이션을 실행하고 으로 이동합니다http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4
. 에 대해 name
다른 값을 시도할 수 있습니다.numtimes
시스템은 주소 표시줄에 있는 쿼리 문자열의 명명된 매개 변수를 메서드의 매개 변수에 자동으로 매핑합니다.
이 두 예제에서 컨트롤러는 보기 및 컨트롤러 작업인 MVC의 VC 부분을 수행하고 있습니다. 컨트롤러가 HTML을 직접 반환하고 있습니다. 일반적으로 코드에 매우 번거로워지므로 컨트롤러가 HTML을 직접 반환하는 것을 원하지 않습니다. 대신 일반적으로 HTML 응답을 생성하는 데 도움이 되도록 별도의 보기 템플릿 파일을 사용합니다. 이 작업을 수행하는 방법을 살펴보겠습니다.