Crear un controlador (VB)
por Stephen Walther
En este tutorial, Stephen Walther muestra cómo puede agregar un controlador a una aplicación ASP.NET MVC.
El objetivo de este tutorial es explicar cómo puede crear nuevos controladores ASP.NET MVC. Aprenderá a crear controladores mediante la opción de menú Agregar controlador de Visual Studio y mediante la creación de un archivo de clase manualmente.
Usar la opción de menú Agregar controlador
La manera más fácil de crear un nuevo controlador es hacer clic con el botón derecho en la carpeta Controladores en la ventana Explorador de soluciones de Visual Studio y seleccionar la opción de menú Agregar, controlador (vea la figura 1). Al seleccionar esta opción de menú se abre el cuadro de diálogo Agregar controlador (vea la figura 2).
Figura 01: Agregar un nuevo controlador (Haga clic para ver la imagen de tamaño completo)
figura 02: El cuadro de diálogo Agregar controlador (Haga clic para ver la imagen de tamaño completo)
Observe que la primera parte del nombre del controlador está resaltada en el cuadro de diálogo Agregar controlador . Cada nombre del controlador debe terminar con el sufijo Controlador. Por ejemplo, puede crear un controlador denominado ProductController , pero no un controlador denominado Producto.
Si crea un controlador que no tiene el sufijo Controlador, no podrá invocar el controlador. No haga esto- He desperdiciado innumerables horas de mi vida después de cometer este error.
Lista 1 - Controllers\ProductController.vb
Public Class ProductController
Inherits System.Web.Mvc.Controller
'
' GET: /Product/
Function Index() As ActionResult
Return View()
End Function
End Class
Siempre debe crear controladores en la carpeta Controladores. De lo contrario, infringirá las convenciones de ASP.NET MVC y otros desarrolladores tendrán un tiempo más difícil de entender la aplicación.
Métodos de acción de scaffolding
Al crear un controlador, tiene la opción de generar automáticamente métodos de acción Crear, Actualizar y Detalles (consulte la figura 3). Si selecciona esta opción, se genera la clase de controlador en la lista 2.
Figura 03: Crear métodos de acción automáticamente (Haga clic para ver la imagen de tamaño completo)
Lista 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
Estos métodos generados son métodos de código auxiliar. Debe agregar la lógica real para crear, actualizar y mostrar los detalles de un cliente usted mismo. Pero los métodos de código auxiliar proporcionan un buen punto de partida.
Creación de una clase de controlador
El controlador ASP.NET MVC es simplemente una clase. Si lo prefiere, puede omitir la práctica scaffolding del controlador de Visual Studio y crear una clase de controlador a mano. Siga estos pasos:
- Haga clic con el botón derecho en la carpeta Controladores y seleccione la opción de menú Agregar, Nuevo elemento y seleccione la plantilla Clase (vea la figura 4).
- Asigne un nombre a la nueva clase PersonController.vb y haga clic en el botón Agregar.
- Modifique el archivo de clase resultante para que la clase herede de la clase Base System.Web.Mvc.Controller (vea Lista 3).
Figura 04: Crear una nueva clase(Haga clic para ver la imagen de tamaño completo)
Lista 3 - Controllers\PersonController.vb
Public Class PersonController
inherits Controller
Function Index AS String
Return "Hello World!"
End Function
End Class
El controlador de la lista 3 expone una acción denominada Index() que devuelve la cadena "¡Hola mundo!". Para invocar esta acción del controlador, ejecute la aplicación y solicite una dirección URL como la siguiente:
http://localhost:40071/Person
Nota:
El ASP.NET Servidor de desarrollo usa un número de puerto aleatorio (por ejemplo, 40071). Al escribir una dirección URL para invocar un controlador, deberá proporcionar el número de puerto correcto. Para determinar el número de puerto, mantenga el mouse sobre el icono del Servidor de desarrollo de ASP.NET en el área de notificación de Windows (de la parte inferior derecha de la pantalla).