Artigo

Razor Page - PageRoute

Olá pessoal, hoje eu vou falar um pouco sobre o método PageRoute que funciona como um redirect emulado, aquele que fazíamos no ASP.NET normal para emular um nome da página com o comando HttpContext.Current.RewritePath("/page.aspx"). Assim o usuário tem um endereço ou o nome da página mas na verdade o nome da página é outro.

Seguem dois artigos que mostro como fazer uma Url amigável e outro reescrevendo url.

Url amigável: https://www.ecode10.com/artigo/3004/Url-amigavel-com-framework

Reescrevendo Url: https://www.ecode10.com/artigo/1600/Reescrevendo-URL

É a mesma coisa que acontece com o PageRoute no Razor .NET Core. Podemos emular uma página mas na verdade é outro arquivo.

Para que server uma Url amigável para o usuário? Serve para ajudar na indexação de conteúdo nos buscadores como o Google, Yahoo, Bing e outros. Outro ponto importante é que o usuário grava o endereço mais fácil ao invés de ter que verificar um monte de números ou guids. Pense nisso quando for fazer um web site.

Código

No Razor com .Net Core ficou um pouco diferente porque agora não temos mais o arquivo Global.asax.cs como tínhamos antes.

Então agora temos que fazer no arquivo chamado Startup.cs que fica na raiz do projeto .Net Core, vamos ver o código 1.1.

Código 1.1 - Adicionando Page Route

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages()
        .AddRazorPagesOptions(options =>
        {
            options.Conventions.AddPageRoute("/Pagina", "/artigo/{id?}/{text?}");
            options.Conventions.AddPageRoute("/Categoria", "/categoria/{id?}/{text?}");
            options.Conventions.AddPageRoute("/Emprego", "/emprego/{id?}");
            options.Conventions.AddPageRoute("/ConsultarEmprego", "/consultar-empregos");
        });
}

O código 1.1 mostra que dentro da classe Statup.cs existe um método chamado ConfigureServices. Dentro dele existe o services.AddRazorPages() e tem o método AddRazorPagesOptions.

Dentro de cada option existe a convenção e o método AddPageRoute que funciona da seguinte forma. O primeiro parâmetro é o nome da página normal e o segundo parâmetro é o que vai emular para o usuário. O usuário só vai saber o segundo parâmetro.

Note que o último chamado ConsultarEmprego vai ser o consultar-emprego. Note também que pode ser passado parâmetros e você pode pegar o valor deles dentro da sua classe sem problema algum.

Como exemplo, o usuário vai digitar site.com/consultar-emprego e vai cair na sua página ConsultarEmprego.cshtml.

Espero que tenha ajudado e qualquer dúvida pode entrar em contato pelo site https://www.mauriciojunior.org.

  • Mauricio Junior

    Mauricio Junior