Crear un controlador

Actualmente ya hay algunos controladores en la carpeta Controllers, incluyendo HomeController que generá la pantalla de bienvenida por defautl cuando visitas http://localhost:5000. Puedes ignorar estos controladores por ahora.

Crea un nuevo controlador para la funcionalidad de la lista de tareas y agrega el siguiente código:

Controllers/TodoController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace AspNetCoreTodo.Controllers
{
    public class TodoController : Controller
    {
        // Las acciones van aquí
    }
}

Las rutas que son manejadas por el controlador son llamadas acciones, y son representadas por métodos en la clase controlador. Por ejemplo, el HomeController incluye tres métodos de acción (Index, About, y Contact) las cuales son mapeadas por ASP.NET Core a estas rutas URLs:

localhost:5000/Home         -> Index()
localhost:5000/Home/About   -> About()
localhost:5000/Home/Contact -> Contact()

Hay un gran número de convenciones usados por ASP.NET Core, tales como patrón que FooController se convierte en /Foo, y la acción Index puede ser omitida de la URL. Puedes personalizar este comportamiento si así lo deseas, pero por ahora, usaremos las convenciones predefinidas.

Agrega un nueva acción llamada Index al TodoController, remplazando el comentario // Las acciones van aquí;

public class TodoController : Controller
{
    public IActionResult Index()
    {
        // Obtener las tareas desde la base de datos

        // Colocar los tareas en un modelo

        // Genera la vista usando el modelo
    }
}

Los métodos de acción pueden regresar vistas, datos JSON, o códigos de estatus HTTP como 200 OK y 404 Not Found.

El tipo de retorno IActionResult te da la flexibilidad de regresar cualquiera de estos desde una acción. Es una buena práctica mantener los controladores tan ligeros como sea posible. En este caso, el controlador será responsable de obtener la lista de tareas desde la base de datos, poniendo estas tareas en un modelo que la vista pueda entender, y enviara la vista de regreso al navegador del usuario.

Antes de que puedas escribir el resto del código del controlador, necesitas crear un modelo y una vista.