PostBack com Isapi Rewrite

image post

Recentemente utilizei o Isapi Rewrite para criação/ visualização de URL´s amigáveis em sim projeto hospedado na Locaweb,

Porém batemos de frente com o seguite problema: Os PostBacks do asp.net simplesmente não funcionavam!

Ao analizar o problema concluí que isto devia-seao fato que o Isapi Rewrite simplesmente reescreve a url em questão para o endereço amigável,

no meu caso eu programei o “.htaccess” para remover as extensões de todos os arquivos por exemplo: www.site.com/noticias.aspx para www.site.com/noticias

digamos que nesta página haja um filtro por data, região etc. ou um form do tipo “indique para um amigo” ao clicar nada acontecerá, isto porque os forms asp.net inserem

automaticamente o arquivo em questão no “action” quando este não é especificado então quando acessamos www.site.com/noticias, na verdade estamos acessando o arquivo

“noticias.aspx” e o action do form é justamente o arquivo “noticias.aspx” então ao submeter o formulário (enviar o PostBack) o Isapi Rewrite fazia o redirect os os dados do Post eram

perdidos.

Após muito quebrar a cabeça tentando desenvolver a solução consegui com apenas 2 linhas de código

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim originalUrl As String = Request.ServerVariables(“HTTP_X_REWRITE_URL”)
nomeForm.Action = originalUrl
End Sub

Assim o “Action” do form no HTML fica exatamente como é mostrado na URL do navegador e não com o nome correto do arquivo, removendo todos os impedimentos para um

PostBack

Links que me ajudaram a chegar a esta solução:

http://pt.w3support.net/index.php?db=so&id=411167

http://jlcoady.net/aspnet/how-to-url-rewrite-asp-net-2-theme-form-postback

Tagged : , , ,

Leave a Reply