Tecniche di URL rewriting con ASP.NET

di: Sosan Abou Assalè     18 Aprile 2007

Gestire i postback

Se si fa utilizzo del meccanismo di postback nell' applicazione allora bisognerà tener presente che con il postback si verifica un problema, l'URL sottostante verrà visualizzato vanificando il lavoro dell'URL rewriting.

Il problema è che il rendering del tag <form> imposta l'attributo action con l'URL memorizzato nell'oggetto Request, l'utente dopo il postback vedrà, quindi un URL di questo tipo:

URLRewriting_Module/default.aspx?tab=1

Per risolvere il problema possiamo fare in modo che non venga eseguito il rendering dell'attributo action. Una strada è quella di estendere la classe System.Web.HtmlControls.HtmlForm, eseguendo l'override del metodo RenderAttribute() e modificare la linea di codice relativa al rendering dell'attributo azione.

Listato 11. Estendere HtmlForm e rimuovere l'attributo action

public class Form : System.Web.UI.HtmlControls.HtmlForm
{
  protected override void RenderAttributes(HtmlTextWriter writer)
  {
    writer.WriteAttribute("name", this.Name);
    base.Attributes.Remove("name");
    writer.WriteAttribute("method", this.Method);
    base.Attributes.Remove("method");
    this.Attributes.Render(writer);
    base.Attributes.Remove("action");

    if (base.ID != null)
      writer.WriteAttribute("id", base.ClientID);
  }
}

In questo modo riusciamo ad evitare spiacevoli sorprese all'utente che potrebbe vedere cambiare l'URL improvvisamente.

Conclusioni

In questo articolo abbiamo introdotto la tecnica dell' URL Rewriting presentando due esempi pratici che mostrano l'utilizzo dei moduli http e degli Handler http con ASP.NET.

La tecnica dell'URL Rewriting è molto utile, perchè rende la vita più facile sia all'utente che non deve ricordarsi URL complessi sia ai motori di ricerca che riescono ad indicizzare al meglio le pagine dinamiche che presentano parametri nella querystring.

Fino a poco tempo fa Google stesso invitava i webmaster a non utilizzare i parametri in querystring poiché non sarebbero state indicizzate correttamente le pagine. Ultimamente l'algoritmo Googlebot è stato modificato in modo tale da riuscire ad indicizzare anche questo tipo di pagine.

Però, a parte questo, mi sento di consigliare ancora la tecnica dell'URL rewriting, perché la maggior parte degli spider ancora soffre di questo problema e, poi, perché la presenza di keyword rilevanti all'interno dell'URL porta sempre vantaggi per il posizionamento.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto