Create a controller
Já existem alguns controllers no diretório Controllers do projeto, incluindo o HomeController
que renderiza a tela padrão de boas-vindas que você vê quando visita http://localhost:5000
. Você pode ignorar esse controllers por enquanto.
Crie um novo controller para a funcionalidade de to-do list, chamado TodoController
e adicione o code seguinte:
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
{
// Actions go here
}
}
Rotas que são tratadas por controllers são chamadas de actions, e são representadas por métodos na classe controller. Por exemplo, o HomeController
contêm três métodos action (Index
, About
, e Contact
) que são mapeados pelo ASP.NET Core para essas rotas URLs:
localhost:5000/Home -> Index()
localhost:5000/Home/About -> About()
localhost:5000/Home/Contact -> Contact()
Existe um número de convenções (padrões comuns) usados pelo ASP.NET Core, tal como o padrão que FooController
se torna /Foo
, e o nome do action Index
pode ser deixado de fora da URL. Você pode customizar esse comportamento se quiser, mas por enquanto vamos seguir a convenção padrão.
Adicione um novo action chamado Index
ao TodoController
, substituindo o comentário // Actions go here
:
public class TodoController : Controller
{
public IActionResult Index()
{
// Get to-do items from database
// Put items into a model
// Render view using the model
}
}
Métodos action podem retornar views, dados JSON, ou códigos de estado HTTP como 200 OK
e 404 Not Found
. O tipo de retorno IActionResult
lhe dá a flexibilidade de retornar qualquer um desses a partir do action.
É uma prática recomendada manter os controllers tão leves quanto possível. Neste caso, o controller será responsável por obter os itens da to-do list do banco de dados, colocar esses itens em um model que a view consiga entender e enviar a view de volta para o navegador do usuário.
Antes de escrever o restante do código do controller, você precisa criar um model e uma view.
Last updated
Was this helpful?