Antes do ASP.net 4.0, para criar URLs amigáveis aos mecanismos de pesquisa e ao usuário, precisávamos implementar a reescrita de URL nós mesmos. UrlRouting é chamado de roteamento porque não apenas implementa a reescrita de URL, mas também pode obter o URL reescrito por meio de parâmetros e usá-lo na página.
1. Uso comum de roteamento de URL
UrlRouting é amplamente utilizado em projetos Asp.Net Mvc e é muito útil em Mvc, por isso é transplantado para webform. Vamos primeiro ver como ele é usado em webform. Vamos supor um cenário de uso: precisamos criar uma página para blog diário. postagens. O endereço de URL que queremos é:
/archive/2010/05/10/default.aspx
Este endereço será mapeado para o arquivo ~/posts.aspx
Para usar o UrlRouting, você precisa registrar as regras do UrlRouting no RouteTable. O código para registrar as regras de roteamento no arquivo Global é o seguinte:
visualizar sourceprint?01 public static void RegisterRoutes (rotas RouteCollection)
02 {
03 rotas.Ignore("{recurso}.axd/{*pathInfo}");
04
05 Routes.MapPageRoute("blogs", //Dê um nome a esta regra de UrlRouting
06 "archive/{year}/{month}/{date}/default.aspx", //Formato de endereço de URL amigável
07 "~/blogs.aspx", //O caminho da página aspx mapeada
08 false, //Você precisa verificar as permissões do usuário?
09 novo RouteValueDictionary{ { "ano", DateTime.Now.Year },
10 { "mês", DateTime.Now.Month },
11 {"data", DateTime.Now.Date}
12 },//Valor padrão do parâmetro
13 novos RouteValueDictionary {
14 {"ano",@"(19|20)d{2}"},
15 {"mês",@"d{1,2}"},
16 {"data",@"d{1,2}"}
17 } //Regras de parâmetros, limitamos o ano, mês e dia na url ao formato de dados que desejamos.
18);
19
20}
vinte e um
22 void Application_Start(remetente do objeto, EventArgs e)
vinte e três {
24 //Regras de roteamento registradas em Application_Start
25 RegisterRoutes(RouteTable.Routes);
26}
2. Use o valor do parâmetro UrlRouting na página 1) Use o valor Route no código de segundo plano
visualizar sourceprint?1 protegido void Page_Load (objeto remetente, EventArgs e)
2 {
3 string ano = (string)RouteData.Values["ano"];
4 string mês = (string)RouteData.Values["mês"];
5 string data = (string)RouteData.Values["data"];
6}
2) Use na página
visualizar sourceprint?1 <asp:Literal ID="literalYear" runat="server" Text="<%$RouteValue:year %>"></asp:Literal>
2 -<asp:Literal ID="literal1" runat="server" Text="<%$RouteValue:month %>"></asp:Literal>
3 -<asp:Literal ID="literal2" runat="server" Text="<%$RouteValue:date %>"></asp:Literal>
3) Use RouteParameter em DataSource
visualizar sourceprint?1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
2 SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Where Category = @category">
3 <Selecionar Parâmetros>
4 <asp:RouteParameter Name="category" RouteKey="category" />
5 </SelectParameters>
6 </asp:SqlDataSource>
4) Exibir RouteUrl na página
visualizar sourceprint?1 <a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>Blog em 1º de maio de 2010</a>
3. A diferença entre UrlRouting e UrlRewrite
UrlRouting é algo relativamente novo em comparação com a reescrita de URL. A vantagem do UrlRouting é que ele pode não apenas reescrever URL, mas também obter o endereço de URL reescrito com base em alguns parâmetros. suas próprias deficiências. Por exemplo, se você quiser reescrever o nome de domínio, como o endereço do blog yukaizhao.cnblogs.com, o UrlRouting não pode fazer isso e você só pode usar o UrlRewrite.
http://www.cnblogs.com/yukaizhao/archive/2010/05/20/urlrouting_asp_net_40.html