ASP .NET Core MVC - Criando um Portfólio digital - II
Hoje vamos continuar a criação de um portfólio digital usando a ASP .NET Core MVC no ambiente do NET 6. |
Vamos continuar a criação do nosso portfólio digital definindo as Partial Views e criando os demais recursos no projeto.
Antes de continuar a criação dos demais recursos vamos explicar o código do
controlador PortfolioController:
using Microsoft.AspNetCore.Mvc; using PortfolioMvc.Services; using PortfolioMvc.ViewModels;
namespace PortfolioMvc.Controllers public PortfolioController(IProjetosService projetoService,
public IActionResult Index() var modelo = new PortfolioViewModel() [HttpGet] [HttpPost] public IActionResult Obrigado() |
1- Injetamos no
construtor do controlador os serviços criados;
2- Criamos o método Action Index que vai o
portfólio com uma amostra de 3 projetos. Para isso obtemos 3 projetos e
atribuímos à propriedade Projetos definida na view model
PortfolioViewModel;
3- Criamos o método Action Projetos que vai exibir os principais projetos;
4- No método Action Contato vamos definir no GET a apresentação do formulário de contato e no POST o seu processamento com o envio do email usando o SendGrid e redirecionamento para a Action Obrigado.;
Criando as views e partial views do projeto
Vamos criar a view Index.cshtml que vai exibir o portfólio principal:
@model PortfolioViewModel
@{ <partial name="_Apresentacao"/> <partial name="_Experiencia"/> <partial name="_ProjetosAmostra" model="Model?.Projetos"/> <partial name="_Rodape"/> |
No código da view usamos a view model PortfolioViewModel e definimos 4 partial views para facilitar e segmentar a exibição de cada seção do portfólio facilitando assim a manutenção do código.
Uma Partial View é um arquivo de marcação Razor(. cshtml) que renderiza a saída HTML dentro da saída processada de outro arquivo de marcação. Elas não podem ser usadas para manter os elementos de layout comuns.
As partial views são usadas para :
ssim teremos que criar as seguintes partial views na pasta Shared:
Estas partial views usam imagens que foram incluídas na pasta wwwroot/imagens do projeto.
A seguir temos o código de cada partial view:
1 - _Apresentacao.cshtml
<div class="text-center"> <h4 class="display-3">Olá, sou o Macoratti</h4> <h5>Sou desenvolvedor especializado em tecnologías .NET.</h5> <img id="foto" </div> <div class="row justify-content-center text-center" style="background-color : #f7f7f7"> |
2 - _Experiência.cshtml
<div style="margin-top: -105px">
<div class="row justify-content-md-center text-center"> <p> <p class="text-primary cabecalho"> <p> <p class="text-primary cabecalho"> <ul> </div> <p class="text-primary cabecalho"> <p> <p class="text-primary cabecalho"> <ul> |
3 - _ProjetoAmostra.cshtml
@model IEnumerable<Projeto>
@if (Model is not null) <partial name="_Projetos" model="Model" /> |
4 - _Rodape.cshtml
<div id="footer" class="text-center"> <div class="container-fluid"> <div class="socials-media text-center"> <ul class="list-unstyled"> <li><a href="https://www.facebook.com/Macoratti.net/"><i class="bi bi-facebook"></i></a></li> <li><a href="https://twitter.com/macorati"><i class="bi bi-twitter"></i></a></li> <li><a href="https://www.instagram.com/macorattinet/"><i class="bi bi-instagram"></i></a></li> <li><a href="https://www.linkedin.com/in/jose-macoratti-2507156a/"><i class="bi bi-linkedin"></i></a></li> </ul> </div> <p>© Copyright Macoratti.net</p> </div> </div> |
Além destas vamos usar também a partial view _Projetos.cshtml
@model IEnumerable<Projeto>
@if (Model is not null) |
Esta partial view é usada também pela View Projetos.cshtml:
@model IEnumerable<Projeto> @{ <div class="container"> <partial name="_Projetos" model="Model" />
|
A seguir temos a view Contato.cshtml que vai apresentar o formulário de contato :
@{ ViewData["Title"] = "Contato"; } <img src="~/imagens/contato.jpg" width="100" height="100"/> <h1>Formulario de Contato</h1> <form asp-controller="Portfolio" asp-action="Contato"> |
Neste código estou usando HTML 5 e validando de forma bem simples os campos do formulário.
Para concluir temos a view Obrigado.cshtml :
<div class="jumbotron jumbotron-fluid"> <div class="container">
<h3 class="display-4">Grato pelo seu contato</h3> |
E com isso concluímos a criação deste projeto simples mas funcional que você pode usar como ponto de partida para criar um portfólio mais robusto.
Pegue o projeto aqui : PortfolioMvc.zip
"Deus
"retribuirá a cada um conforme o seu procedimento".
Ele dará vida eterna aos que, persistindo em fazer o bem, buscam glória,
honra e imortalidade."
Romanos 2:6,7
Referências: