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.