28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Conceptos básicos de...
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
14 diciembre ASP.NET

Conceptos básicos de los controladores en ASP.NET Core

Conceptos básicos de los controladores en ASP.NET Core

En este artículo, voy a hablar sobre los controladores en las aplicaciones con ASP.NET Core MVC con un ejemplo.

En de este artículo, aprenderás los siguientes temas.

  • ¿Qué es un controlador?
  • El rol del controlador
  • ¿Cómo agregar un controlador en una aplicación ASP.NET Core?
  • ¿Qué son los métodos de acción?
  • ¿Cómo llamar al método de acción de un controlador?
  • ¿Cómo pasar parámetros en métodos de acción?
  • ¿Cuándo debemos crear un nuevo controlador?
  • ¿Cuántos controladores podemos tener en una sola aplicación?

¿Qué es un controlador en ASP.NET Core?

Un controlador es una clase especial en ASP.NET Core con extensión .cs (para lenguaje C#). De forma predeterminada, cuando creas una nueva aplicación ASP.NET Core con la plantilla modelo – vista - controlador (MVC), puedes ver que los controladores residen en la carpeta Controllers.

Los Controladores en una aplicación MVC agrupan lógicamente tipos de acciones similares. Esta agregación de acciones o la agrupación de tipos de acciones similares nos permite definir conjuntos de reglas, como el almacenamiento en caché, el enrutamiento y la autorización, que se aplicarán de forma colectiva.

En una aplicación ASP.NET Core MVC, la clase de controlador debe heredarse de la clase base Controller.

Cuando el cliente navega en la aplicación web envía una solicitud al servidor, esa solicitud pasa primero por la canalización de procesamiento de solicitudes. Una vez que la solicitud pasa la canalización de procesamiento de solicitudes, llegará al controlador. Dentro del controlador, hay muchos métodos (llamados métodos de acción) que realmente manejan esa solicitud HTTP entrante. El método de acción dentro del controlador ejecuta la lógica de negocio y prepara la respuesta que se envía al cliente que inicialmente realizó la solicitud.

¿Qué es un controlador?

Función o rol del controlador:

  1. Un controlador se utiliza para agrupar acciones, es decir, métodos de acción.
  2. El controlador es responsable de manejar las solicitudes HTTP entrantes.
  3. El mapeo de la solicitud HTTP se realiza mediante enrutamiento. Eso quiere decir que para una solicitud HTTP dada, el motor de enrutamiento se encarga se debe buscar qué método de acción de qué controlador va a invocar para enviar la respuesta.
  4. Muchas funciones importantes, como el almacenamiento en caché, la seguridad, etc., se pueden aplicar al controlador.

¿Cómo agregar controladores en una aplicación ASP.NET Core?

Si creas la aplicación ASP.NET Core con la plantilla de proyecto MVC, de forma predeterminada Visual Studio creará un controlador llamado HomeController dentro de la carpeta Controllers. Pero si creas la plantilla ASP.NET Core con proyecto vacío, de forma predeterminada no encontrarás la carpeta Controllers en tu proyecto. Como te voy a explicar todo desde cero, creare la aplicación ASP.NET Web Core con una plantilla vacía y agregare la carpeta Controllers y los Controladores manualmente.

Paso 1: Creación de una aplicación web ASP.NET Core vacía

Crea una aplicación web ASP.NET Core con una plantilla de proyecto vacía.

¿Qué es un controlador?

Puedes dar cualquier nombre a tu aplicación. En mi caso la llamare FirstCoreMVCWebApplication.

¿Qué es un controlador?

Posteriormente debes seleccionar la versión del Framework que utilizaremos, en mi caso utilizare el .NET 6.0.

¿Qué es un controlador?

El proyecto se creará con la siguiente estructura de carpetas y puedes ver que no existe una carpeta llamada Controladores.

El rol del controlador

Paso 2: agregar la carpeta de los controladores

Una vez que creaste el proyecto, a continuación, debes agregar la carpeta Controllers donde crearemos nuestros Controladores. Para hacerlo, haz clic con el botón derecho en el proyecto y luego seleccione la opción agregar => nueva carpeta en el menú contextual. Simplemente cambia el nombre de la carpeta como Controllers.

El rol del controlador

Paso 3: Agregar controlador

Una vez que creaste la carpeta Controllers, a continuación, debes agregar un controlador (StudentController) dentro de la carpeta Controllers que acabamos de crear. Para hacerlo, haz clic con el botón derecho en la carpeta Controllers y seleccione la opción Agregar => Controlador en el menú contextual que abrirá la ventana Agregar controlador como se muestra en la imagen a continuación.

Agregar controlador

Como puedes ver en la imagen siguiente, tenemos tres plantillas para crear un controlador MVC, así como tres plantillas para crear un controlador Web API.

Agregar controlador

Como nos interesa la aplicación MVC, puedes usar cualquiera de las siguientes tres plantillas:

Controlador MVC – en blanco: Creará un controlador vacío.

Controlador MVC con acciones de lectura o escritura: esta plantilla creará el controlador con cinco métodos de acción para crear, leer, actualizar, eliminar y lista de entidades (create, read, update, delete y list entities).

Controlador MVC con vistas que usan Entity Framework: esta plantilla creará un controlador MVC con acciones y vistas de Razor para crear, leer, actualizar, eliminar y enlistar entidades usando Entity Framework.

En nuestro caso vamos a crear el controlador MVC con la plantilla vacía. Por lo tanto, selecciona la opción Controlador MVC en blanco y haz clic en el botón Agregar como se muestra en la imagen a continuación.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

Una vez que hagas clic en el botón Agregar, se abrirá la ventana donde debes seleccionar la opción Clase de controlador: vacía y darle un nombre significativo a tu controlador. En mi caso yo lo voy a nombrar StudentController y hago clic en el botón Agregar. Aquí, el punto que debes recordar es que los nombres de los Controladores deben tener como sufijo la palabra Controller.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

Una vez que hagas clic en el botón Agregar, se agregará StudentController dentro de la carpeta Controllers como se muestra en la imagen a continuación.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

Entendiendo StudentController:

Ahora comprendamos la clase StudentController y los diferentes componentes de esta clase. En primer lugar, es una clase que tiene una extensión .cs. Abra la clase StudnetController.cs y deberías ver el siguiente código predeterminado.

using Microsoft.AspNetCore.Mvc;

namespace FirstCoreMVCWebApplication.Controllers
{
    public class StudentController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}

Como puedes ver en el código de arriba, la clase StudentController se hereda de la clase Controller, y esta clase de controlador está presente en el espacio de nombres Microsoft.AspNetCore.Mvc y es por eso que importa ese espacio de nombres. Ahora haz clic derecho en el Controller y seleccione ir a la definición y verás la siguiente definición de la clase Controller.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

Como puedes ver en la imagen de arriba, el controlador tiene muchos métodos (Json, View, PartialView, OnActionExecuting, etc.) y propiedades (TempData, ViewBag, ViewData, etc.) y el punto que debes recordar son estos métodos y propiedades. se usarán cuando estemos trabajando con la aplicación ASP.NET Core MVC. Nuevamente, si observas, esta clase de controlador se hereda de la clase ControllerBase.

Ahora espero que tengas claridad sobre los controladores ASP.NET Core MVC. Avancemos y comprendamos el siguiente tema, que es Métodos de acción.

¿Qué son los métodos de acción?

Todos los métodos públicos de una clase de controlador se conocen como métodos de acción (Action Methods). Porque se crean para una acción u operación específica en la aplicación. Entonces, una clase de controlador puede tener muchos métodos de acción relacionados. Por ejemplo, agregar un Estudiante es una acción. Modificar los datos del estudiante es otra acción. Eliminar un estudiante es otra acción. Entonces, el punto que debes recordar es que todas las acciones relacionadas deben crearse dentro de un controlador en particular.

Un método de acción puede devolver varios tipos. Modifiquemos el StudentController como se muestra a continuación, donde tenemos un método que devuelve todos los detalles del estudiante. Intencionalmente, devolvimos una cadena de este método, pero a medida que avanzamos en este curso, analizaremos la implementación real de este método. Pero por ahora, solo con el propósito de aprender, tenemos que devolver una cadena.

using Microsoft.AspNetCore.Mvc;

namespace FirstCoreMVCWebApplication.Controllers
{
    public class StudentController : Controller
    {
        public string GetAllStudents()
        {
            return "Return All Students";
        }
    }
}

¿Cómo llamar a un método de acción de un controlador?

Cuando recibimos una solicitud HTTP en un controlador, en realidad es el método de acción del controlador el que recibe esa llamada. Entonces, cada vez que decimos que estamos invocando un controlador, significa que estamos invocando un método de acción de un controlador.

La estructura predeterminada es: http://domain.com/ControllerName/ActionMethodName

Como estamos trabajando con el desarrollo usando Visual Studio, el nombre de dominio será nuestro host local con algún número de puerto disponible. Por lo tanto, si queremos acceder al método de acción GetAllStudents del StudentController, la URL es similar a la siguiente.

http://localhost:<número de puerto>/student/GetAllStudents

Probemos esto. En este momento, si ejecutas la aplicación y navega a la URL anterior, no obtendrá el resultado. Esto se debe a que hemos creado este proyecto utilizando la plantilla vacía. Y la plantilla de proyecto vacío de forma predeterminada no agregará el servicio MVC requerido al contenedor de inyección de dependencia incorporado y tampoco configurará el middleware requerido para la canalización de procesamiento de la aplicación. Entonces, establezcamos estos dos.

Modificando el archivo Program.cs:

Abra el archivo de clase Program.cs y luego copie y pega el siguiente código que agregará el servicio MVC requerido a la inyección de dependencia y también agregará el middleware MVC a la canalización de procesamiento de solicitudes.

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMvc();
var app = builder.Build();

app.UseRouting();

app.UseEndpoints(endpoints =>
{
    //Configuring the MVC middleware to the request processing pipeline
    endpoints.MapDefaultControllerRoute();
});

app.Run();

Con el cambio anterior, ahora ejecuta la aplicación y navegue a la URL http://localhost:<portnumber>/student/GetAllStudents y deberías obtener el resultado esperado como se muestra en la imagen a continuación.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

Para comprender mejor cómo se asignó la URL anterior al método de acción GetAllStudents, observe la siguiente imagen.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

¿Cómo pasar parámetros en métodos de acción?

Entendamos esto con un ejemplo. Ahora quiero buscar estudiantes basados en el nombre. Para hacerlo, agrega el siguiente método de acción dentro del Student Controller.

public string GetStudentsByName(string name)
{
    return $"Return All Students with Name : {name}";
}

Ahora ejecuta la aplicación y navegue hasta la URL http://localhost:<portnumber>/student/GetStudentsByName?name=james y observa el resultado.

¿Cómo agregar un controlador en una aplicación ASP.NET Core?

En este caso, el parámetro name de la url se asigna al parámetro name del método de acción GetStudentsByName. Discutiremos el mapeo de parámetros, el mapeo predeterminado y muchos más en nuestros próximos artículos.

¿Cuándo debemos crear un nuevo controlador?

Siempre que necesitemos definir un nuevo grupo de acciones u operaciones en tus aplicaciones, debes crear un nuevo controlador. Por ejemplo, para hacer operaciones de estudiantes, puede crear StudentController. Para administrar la seguridad de tu aplicación, como iniciar sesión, cerrar sesión, etc., puede crear un controlador de seguridad.

¿Cuántos controladores podemos tener en una sola aplicación?

Depende de la aplicación. Se requiere al menos un controlador para realizar operaciones y el número máximo depende 100% de la aplicación que estas desarrollando.

Resumen

En el siguiente artículo, hablaré sobre el enrutamiento en ASP.NET Core. En este artículo, explique los conceptos básicos de los controladores en una aplicación ASP.NET Core MVC. Espero que disfrute de este artículo, Controladores en ASP.NET Core MVC.

Compartir:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape