컨트롤러 만들기(VB)
이 자습서에서 Stephen Walther는 ASP.NET MVC 애플리케이션에 컨트롤러를 추가하는 방법을 보여 줍니다.
이 자습서의 목표는 새 ASP.NET MVC 컨트롤러를 만드는 방법을 설명하는 것입니다. Visual Studio 컨트롤러 추가 메뉴 옵션을 사용하고 클래스 파일을 직접 만들어 컨트롤러를 만드는 방법을 알아봅니다.
컨트롤러 추가 메뉴 옵션 사용
새 컨트롤러를 만드는 가장 쉬운 방법은 Visual Studio 솔루션 탐색기 창에서 Controllers 폴더를 마우스 오른쪽 단추로 클릭하고 추가, 컨트롤러 메뉴 옵션을 선택하는 것입니다(그림 1 참조). 이 메뉴 옵션을 선택하면 컨트롤러 추가 대화 상자가 열립니다(그림 2 참조).
그림 01: 새 컨트롤러 추가(전체 크기 이미지를 보려면 클릭)
그림 02: 컨트롤러 추가 대화 상자(전체 크기 이미지를 보려면 클릭)
컨트롤러 이름의 첫 번째 부분은 컨트롤러 추가 대화 상자에서 강조 표시됩니다. 모든 컨트롤러 이름은 접미사 컨트롤러로 끝나야 합니다. 예를 들어 ProductController 라는 컨트롤러를 만들 수 있지만 Product라는 컨트롤러는 만들 수 없습니다.
컨트롤러 접미사가 없는 컨트롤러를 만드는 경우 컨트롤러 를 호출할 수 없습니다. 이 작업을 수행하지 마십시오 - 나는이 실수를 한 후 내 인생의 수많은 시간을 낭비했습니다.
목록 1 - Controllers\ProductController.vb
Public Class ProductController
Inherits System.Web.Mvc.Controller
'
' GET: /Product/
Function Index() As ActionResult
Return View()
End Function
End Class
항상 Controllers 폴더에 컨트롤러를 만들어야 합니다. 그렇지 않으면 ASP.NET MVC의 규칙을 위반하고 다른 개발자는 애플리케이션을 이해하는 데 더 어려움을 겪게 됩니다.
스캐폴딩 작업 메서드
컨트롤러를 만들 때 만들기, 업데이트 및 세부 정보 작업 메서드를 자동으로 생성하는 옵션이 있습니다(그림 3 참조). 이 옵션을 선택하면 목록 2의 컨트롤러 클래스가 생성됩니다.
그림 03: 자동으로 작업 메서드 만들기(전체 크기 이미지를 보려면 클릭)
목록 2 - Controllers\CustomerController.vb
Public Class CustomerController
Inherits System.Web.Mvc.Controller
'
' GET: /Customer/
Function Index() As ActionResult
Return View()
End Function
'
' GET: /Customer/Details/5
Function Details(ByVal id As Integer) As ActionResult
Return View()
End Function
'
' GET: /Customer/Create
Function Create() As ActionResult
Return View()
End Function
'
' POST: /Customer/Create
<AcceptVerbs(HttpVerbs.Post)> _
Function Create(ByVal collection As FormCollection) As ActionResult
Try
' TODO: Add insert logic here
Return RedirectToAction("Index")
Catch
Return View()
End Try
End Function
'
' GET: /Customer/Edit/5
Function Edit(ByVal id As Integer) As ActionResult
Return View()
End Function
'
' POST: /Customer/Edit/5
<AcceptVerbs(HttpVerbs.Post)> _
Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
Try
' TODO: Add update logic here
Return RedirectToAction("Index")
Catch
Return View()
End Try
End Function
End Class
이러한 생성된 메서드는 스텁 메서드입니다. 고객에 대한 세부 정보를 직접 만들고 업데이트하고 표시하기 위한 실제 논리를 추가해야 합니다. 그러나 스텁 메서드는 좋은 시작점을 제공합니다.
컨트롤러 클래스 만들기
ASP.NET MVC 컨트롤러는 클래스일 뿐입니다. 원하는 경우 편리한 Visual Studio 컨트롤러 스캐폴딩을 무시하고 직접 컨트롤러 클래스를 만들 수 있습니다. 다음 단계를 수행합니다.
- Controllers 폴더를 마우스 오른쪽 단추로 클릭하고 메뉴 옵션 추가, 새 항목을 선택하고 클래스 템플릿을 선택합니다(그림 4 참조).
- 새 클래스의 이름을 PersonController.vb로 지정하고 추가 단추를 클릭합니다.
- 클래스가 기본 System.Web.Mvc.Controller 클래스에서 상속되도록 결과 클래스 파일을 수정합니다(목록 3 참조).
그림 04: 새 클래스 만들기(전체 크기 이미지를 보려면 클릭)
목록 3 - Controllers\PersonController.vb
Public Class PersonController
inherits Controller
Function Index AS String
Return "Hello World!"
End Function
End Class
목록 3의 컨트롤러는 "헬로 월드!" 문자열을 반환하는 Index()라는 하나의 작업을 노출합니다. 애플리케이션을 실행하고 다음과 같은 URL을 요청하여 이 컨트롤러 작업을 호출할 수 있습니다.
http://localhost:40071/Person
참고
ASP.NET 개발 서버는 난수 포트 번호(예: 40071)를 사용합니다. 컨트롤러를 호출하기 위해 URL을 입력할 때 올바른 포트 번호를 제공해야 합니다. Windows 알림 영역(화면 오른쪽 아래)에서 ASP.NET 개발 서버 아이콘 위로 마우스를 가져가 포트 번호를 확인할 수 있습니다.