Arquivos

Posts Etiquetados ‘reescrever url’

Reescrever url em asp.net (url amigável em asp.net)

Explicarei aqui uma maneira bem simples de se reescrever uma url também conhecidas como “Url’s amigáveis”. Existem inúmeras vantagens para se reescrever a url uma delas é que os buscadores, como o google, tem dificuldade de entender querystrings como “?” ou “&”, outra seria a legibilidade para o usuário que em vez de ter que memorizar alguma coisa como: “noticias.aspx?id=50&c=esporte&x=10…” vai lidar com algo como: “noticias/50/esporte/nome_da_noticia.aspx”.

1 – Estarei usando o Visual Studio 2008 porém a aplicação funcionará perfeitamente no VS 2005 e no framework 2.0. Abra o VS 2008, vá em File > New > Web Site. Escolha a linguagem C# dê um nome qualquer ao projeto e clique em “Ok”.

2 – Agora clique com o botão em cima do projeto e clique em “Add new item…”, escolha o tipo “Web Form” e de o nome de “produtos.aspx”.

3 – Abra o arquivo “Deafult.aspx” que é criado junto com o projeto e coloque o código abaixo nele:

<a href="produtos/camisas.aspx">Camisas</a><br />
<a href="produtos/calcados.aspx">Calçados</a><br />
<a href="produtos/bermudas.aspx">Bermudas</a><br />

4 – Agora abra o arquivo “produtos.aspx” crie um “label” e coloque o código abaixo no “produtos.aspx.cs”:

produtos.aspx.cs

protected void Page_Load(object sender, EventArgs e)
 {
 if (Request.QueryString["categoria"] != null)
 {
 lblCategoria.Text = Request.QueryString["categoria"];
 }
}

produtos.aspx

<asp:Label ID="lblCategoria" runat="server" Text="Label"></asp:Label>

5 – Agora clique novamente com o botão direito em cima do projeto e escolha a opção “Add new item…”, adicione um arquivo do tipo “Global Application Class”, deixe o nome como “Global.asax” mesmo, esse é um arquivo de configurações e pode apenas ter um por projeto. Abra o mesmo e coloque esse código dentro:

void Application_BeginRequest(object Sender, EventArgs e)
 {
 string originalPath = Request.Url.ToString();

 if (originalPath.Contains("produtos/camisas.aspx"))
 {
 Context.RewritePath("~/produtos.aspx?categoria=camisas");
 }
 else if (originalPath.Contains("produtos/calcados.aspx"))
 {
 Context.RewritePath("~/produtos.aspx?categoria=calcados");
 }
 else if (originalPath.Contains("produtos/bermudas.aspx"))
 {
 Context.RewritePath("~/produtos.aspx?categoria=bermudas");
 }
 }

6 – O Evento “Application_BeginRequest” é o primeiro evento a ser executado em sua aplicação, se você colocar um botão por exemplo e clicar nele, antes de qualquer coisa sua aplicação vai passar por esse evento e depois pelos outros eventos, é nele que colocamos a lógica para reescrever a url.

Clique aqui para baixar o projeto, até a próxima!

CategoriasTutoriais Tags:, ,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.