Create a view
Views no ASP.NET Core são criadas utilizando a linguagem de template Razor, que combina HTML e código C#. (Se você já escreveu páginas usando Handlebars moustaches, ERB no Ruby on Rails, ou Thymeleaf no Java, você já tem a ideia básica.)
A maior parte do código da view é apenas HTML, com adições ocasionais de declarações C# para extrair dados do view model e transformá-los em texto ou HTML. As declarações C# são prefixadas com o símbolo @
.
A view renderizada pela action Index
do TodoController
precisa pegar os dados do view model (uma sequência de itens da to-do list) e exibi-los em uma tabela agradável para o usuário. Por convenção, views são colocadas no diretório Views
em um subdiretório correspondente ao nome do controller. O nome do arquivo da view é o nome da action com uma extensão .cshtml
.
Crie um diretório Todo
dentro do diretório Views
, e adicione este arquivo:
Views/Todo/Index.cshtml
@model TodoViewModel
@{
ViewData["Title"] = "Manage your todo list";
}
<div class="panel panel-default todo-panel">
<div class="panel-heading">@ViewData["Title"]</div>
<table class="table table-hover">
<thead>
<tr>
<td>✔</td>
<td>Item</td>
<td>Due</td>
</tr>
</thead>
@foreach (var item in Model.Items)
{
<tr>
<td>
<input type="checkbox" class="done-checkbox">
</td>
<td>@item.Title</td>
<td>@item.DueAt</td>
</tr>
}
</table>
<div class="panel-footer add-item-form">
<!-- TODO: Add item form -->
</div>
</div>
No começo do arquivo, a diretiva @model
diz ao Razor qual model esperar que esta view seja ligada. O model é acessado através da propriedade Model
.
Assumindo que existam itens da to-do list em Model.Items
, a declaração foreach
irá iterar sobre cada um e renderizar uma linha de tabela (elemento <tr>
) contendo o nome do item e sua data de vencimento. O checkbox também é renderizado, o que irá permitir que o usuário marque o item como completo.
O arquivo de layout
Você deve estar se perguntando onde está o resto do HTML: o que aconteceu com a tag <body>
, ou o cabeçalho e o rodapé da página? O ASP.NET Core usa uma layout view que define a estrutura básica onde todas as outras view's são renderizadas. Ela fica armazenada em Views/Shared/_Layout.cshtml
.
O template padrão do ASP.NET Core inclui Bootstrap e jQuery neste arquivo de layout, então você pode criar rapidamente uma aplicação web. Naturalmente, você pode usar suas próprias bibliotecas CSS e JavaScript se assim quiser.
Personalizando o stylesheet
O template padrão também inclui um stylesheet com algumas regras CSS básicas. O stylesheet é armazenado no diretório wwwroot/css
. Adicione algumas novas regras de estilo CSS no fim do arquivo site.css
:
wwwroot/css/site.css
div.todo-panel {
margin-top: 15px;
}
table tr.done {
text-decoration: line-through;
color: #888;
}
Você pode usar regras CSS como estas para modificar completamente a aparência das suas páginas.
ASP.NET Core e Razor podem fazer muito mais, como partial views e server-rendered view components, mas um simples layout e view são tudo que você precisa por enquanto. A documentação oficial do ASP.NET Core (em https://docs.asp.net) contém vários exemplos se você quiser aprender mais.
Last updated
Was this helpful?