Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 Controllers 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 Product.
Si crea un controlador que no tiene el sufijo Controller, 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.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
//
// GET: /Product/
public ActionResult Index()
{
return View();
}
}
}
Siempre debe crear controladores en la carpeta Controllers. De lo contrario, estará infringiendo las convenciones de ASP.NET MVC y a otros desarrolladores les resultará más difícil entender su 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.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace MvcApplication1.Controllers
{
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult Index()
{
return View();
}
//
// GET: /Customer/Details/5
public ActionResult Details(int id)
{
return View();
}
//
// GET: /Customer/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Customer/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
//
// GET: /Customer/Edit/5
public ActionResult Edit(int id)
{
return View();
}
//
// POST: /Customer/Edit/5
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}
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 Controller
El controlador de ASP.NET MVC es simplemente una clase. Si lo prefiere, puede omitir el práctico 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 Controllers 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.cs 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.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcApplication1.Controllers
{
public class PersonController : System.Web.Mvc.Controller
{
public string Index()
{
return "Hello World!";
}
}
}
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).