sábado, 29 de septiembre de 2012

Reescribiendo metodos de URL en ASP.NET

En este proyecto web lo que haremos sera mostrar una lista de artistas y al seleccionar uno se muestra en la URL y se carga otra pagina:

Primero descargamos el componente URL Rewriter .NET aqui:http://www.dotnetdevelopment.net/tutorials/URLRewriterCompiled.zip Volvemos a nuestro proyecto y vamos a la opcion agregar referencia:
Una vez aqui agregamos la dl

Una vez aqui agregamos la dll que descargamos(Intelligencia.UrlRewriter.dll).
Ahora en el proyecto crearemos una pagina aspx llamada Music.aspx.
Ahora en el Web.config agregamos la siguiente linea debajo del configSection
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
Ahora agregamos esta linea justo abajo de httpModules
<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
Ahora la pagina Default.aspx se vera asi:
El codigo de la pagina sera el siguiente
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       <h1>Music Page</h1>
        
        <p>Select your favorite artist below.</p>
        
        <ul>
            <li><a href="music.aspx?artist=Beatles">Beatles</a></li>
            <li><a href="music.aspx?artist=Led Zeppelin">Led Zeppelin</a></li>
            <li><a href="music.aspx?artist=Rolling Stones">Rolling Stones</a></li>
        </ul>
    </div>
    </form>
</body>
Como se ve las rutas URL son estructuras URL relativas. Lo que queremos es reescribir la URL original y que se vea asi:

music.aspx?artist=Beatles
music.aspx?artist=Led Zeppelin
music.aspx?artist=Rolling Stones
en la segunda pagina llamada music.aspx se vera asi:
el codigo sera el siguiente:
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    You are visiting the <font color=maroon><b><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></b></font> page. Thank you.
    </div>
    </form>
</body>
nuestro codigo en el Load de la pagina sera este
.vb
'Get query string value
        Dim querystring_value As String = Request.QueryString("artist")
        'Display the retrieve artist value to the page
        Label1.Text = querystring_value.ToUpper()
espero les haya servido el ejemplo.

0 comentarios:

Publicar un comentario