Antes de ASP.net 4.0, para crear URL fáciles de usar y para motores de búsqueda, necesitábamos implementar la reescritura de URL nosotros mismos. Ahora no es necesario que .Net 4.0 haga todo esto por nosotros. UrlRouting se llama Enrutamiento porque no solo implementa la reescritura de URL, sino que también puede obtener la URL reescrita a través de parámetros y usarla en la página.
1. Uso común del enrutamiento de URL
UrlRouting se usa ampliamente en proyectos Asp.Net Mvc y es muy útil en Mvc, por lo que se trasplanta a un formulario web. Primero veamos cómo se usa en un formulario web. Supongamos un escenario de uso: necesitamos crear una página para el blog diario. publicaciones La dirección URL que queremos es:
/archive/2010/05/10/default.aspx
Esta dirección se asignará al archivo ~/posts.aspx
Para utilizar UrlRouting, debe registrar las reglas de UrlRouting en RouteTable. El código para registrar las reglas de enrutamiento en el archivo global es el siguiente:
ver código fuenteprint?01 public static void RegisterRoutes(rutas de RouteCollection)
02 {
03 rutas.Ignore("{resource}.axd/{*pathInfo}");
04
05 rutas.MapPageRoute("blogs", //Asigne un nombre a esta regla UrlRouting
06 "archive/{year}/{month}/{date}/default.aspx", //Esperamos formato de dirección URL amigable
07 "~/blogs.aspx", //La ruta de la página aspx asignada
08 false, //¿Necesita verificar los permisos del usuario?
09 nuevo RouteValueDictionary { { "año", DateTime.Now.Year },
10 { "mes", FechaHora.Ahora.Mes },
11 {"fecha", FechaHora.Ahora.Fecha}
12 },//Valor predeterminado del parámetro
13 nuevos RouteValueDictionary {
14 {"año",@"(19|20)d{2}"},
15 {"mes",@"d{1,2}"},
16 {"fecha",@"d{1,2}"}
17 } //Reglas de parámetros, limitamos el año, mes y día en la URL al formato de datos que queramos.
18);
19
20}
veintiuno
22 void Application_Start (remitente del objeto, EventArgs e)
veintitrés {
24 //Reglas de enrutamiento registradas en Application_Start
25 RegistrarRutas(RouteTable.Rutas);
26}
2. Utilice el valor del parámetro UrlRouting en la página 1) Utilice el valor de Ruta en el código de fondo
ver código fuente?1 protegido vacío Page_Load (remitente del objeto, EventArgs e)
2 {
3 cadena año = (cadena)RouteData.Values["año"];
4 cadena mes = (cadena)RouteData.Values["mes"];
5 cadena fecha = (cadena)RouteData.Values["fecha"];
6}
2) Usar en la página
ver fuenteprint?1 <asp:Literal ID="literalYear" runat="server" Text="<%$RouteValue:year %>"></asp:Literal>
2 -<asp:Literal ID="literal1" runat="servidor" Text="<%$RouteValue:mes %>"></asp:Literal>
3 -<asp:Literal ID="literal2" runat="servidor" Text="<%$RouteValue:date %>"></asp:Literal>
3) Utilice RouteParameter en DataSource
ver fuenteprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="servidor" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Donde Categoría = @categoría">
3 <Seleccionar parámetros>
4 <asp:RouteParameter Name="categoría" RouteKey="categoría" />
5 </Seleccionar parámetros>
6 </asp:SqlDataSource>
4) Mostrar RouteUrl en la página
ver código fuenteprint?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>Blog del 1 de mayo de 2010</a>
3. La diferencia entre UrlRouting y UrlRewrite
UrlRouting es algo relativamente nuevo en comparación con la reescritura de URL. La ventaja de UrlRouting es que puede realizar una conversión bidireccional. No solo puede reescribir la URL, sino que también puede obtener la dirección URL reescrita en función de algunos parámetros. sus propias deficiencias. Por ejemplo, si desea reescribir el nombre de dominio, como la dirección del blog yukaizhao.cnblogs.com, UrlRouting no puede hacerlo y solo puede usar UrlRewrite.
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html