Include usando Razor e C#

image

Olá pessoal, meu nome é Mauricio Junior e hoje eu vou falar um pouco sobre um problema que estava passando ao usar a nova tecnologia Razor pelo Visual Studio e na linguagem C# .NET.

Problema:

Eu precisava incluir uma model comum em todas as p√°ginas de website que eu criei, mas basicamente essa p√°gina buscaria informa√ß√Ķes do banco de dados.

Hoje em dia, vemos apenas páginas do tipo Shared compartilhada entre várias páginas mas eu que eu preciso é ter uma Model .cshtml com a extensão .cs também incluída nas páginas que eu quero.

Solução:

A solução que eu tive foi, criar uma model comum em uma página específica e depois fazer uma renderização dela de forma parcial nas páginas que eu queria.

Vamos ver o código 1.1.

Código 1.1 - Página Model.

@page
@model Cursos.web.Pages.Carrosel.CarroselModel
@{
}

<!-- ======= Hero Section ======= -->
<section id="" class="">Test</section>

Veja que o código 1.1 eu mostro apenas uma página simples com uma tag chamada Section.

Vamos para a parte .cs da Model page. Code 1.2.

Code 1.2 - Carrosel .cs

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

namespace Cursos.web.Pages.Carrosel
{
    public class CarroselModel : PageModel
    {
        public void OnGet()
        {
        }
    }
}

Note que o código 1.2 não tem nada dentro além do método OnGet() sem qualquer implementação.

Agora, para incluir a esta Model Page dentro de qualquer outra model, vamos precisar de adicionar um comando na página destino. A página que eu quero incluir a Carrosel é a Index, então eu vou acessar ela na página cshtml e vou adicionar o código 1.3.

Código 1.3 - Adicionando o include

@{ Html.RenderPartial("Carrosel/CarroselModel", new Cursos.web.Pages.Carrosel.CarroselModel());}

Basta colocar o endere√ßo e depois a classe como uma nova inst√Ęncia. Dessa forma, voc√™ pode adicionar como include em qualquer p√°gina do seu site ou aplicativo.

Espero que tenha gostado e ajudado. Qualquer d√ļvida voc√™ pode entrar em contato comigo pelo site https://mauriciojunior.net.