none
Ler QueryString não existente no SiteMap RRS feed

  • Pergunta

  • Olá,

    Jah procurei e procurei e não encontrei algo que responde minha duvida, sendo a seguinte:

    Tenho este SiteMap como exemplo:
      <siteMapNode url="Default.aspx" title="Portal"  description="">
            <siteMapNode url="Canal.aspx?canal=Desenvolvimento" title="Desenvolvimento"  description="">
              <siteMapNode url="Categoria.aspx?categoria=Web" title="Web"  description="">
              <siteMapNode url="SubCategoria.aspx?subcategoria=ASP.NET" title="ASP.NET"  description="">
                <siteMapNode url="Postagem.aspx?subcategoria=ASP.NET" title="Postagem"  description="">
                </siteMapNode>
                </siteMapNode>
              </siteMapNode>
            </siteMapNode>
        </siteMapNode>
    
    isso me mostraria o seguinte resultado: Portal > Desenvolvimento > Web > ASP.NET > Postagem

    Acontece que, na pagina:
    Postagem.aspx?subcategoria=ASP.NET
    eu precisava adcionar uma segunda QueryString que se tornaria algo assim:
    Postagem.aspx?subcategoria=ASP.NET&postID=123456789
    Ou seja, se eu adicionar esse QueryString o SiteMap não vai ler e minha pagina com a postagem ficara sem localização!

    Jah tentei algumas coisas, mas nada com resultados!
    Então, como faço para ler uma QueryString não existente no XML SiteMap?

    Meus Agradecimentos,
    William
    • Editado wmnk quarta-feira, 20 de janeiro de 2010 20:57
    quarta-feira, 20 de janeiro de 2010 20:19

Respostas

Todas as Respostas

  • Olá William,

    Se você estiver passando id previamente obtido em um SELECT, por exemplo, pode fazer assim:

    url='Postagem.aspx?categoria=ASP.NET&id=<%# Eval("id")%>'

    De qualquer forma, se o id estiver vindo de outro lugar, basta abrir <%# comando %> que você conseguirá passar.

    Abraços.


    quarta-feira, 20 de janeiro de 2010 20:28
  • Olá William,

    Se você estiver passando id previamente obtido em um SELECT, por exemplo, pode fazer assim:

    url='Postagem.aspx?categoria=ASP.NET&id=<%# Eval("id")%>'

    De qualquer forma, se o id estiver vindo de outro lugar, basta abrir <%# comando %> que você conseguirá passar.

    Abraços.
    Valew, Mas Não deu certo!

    o postID na pagina Postagem.aspx é um parametro que eu uso para fazer um consulta (Select) na propria pagina, ja gerada!
    e a querystring Subcategoria=ASP.NET para identificar a localização e passar para o SiteMap

    Então, se eu coloco o &id=<%# ... %> no SiteMap, o XML me informa um erro.
    como o XML não aceita o caractere & e seu eu substituir por &amp; dáh na mesma... kkk e as tags <%... ele também não aceita ¬¬

    daew por exemplo: se o usuario entra na Pagina: Postagem.aspx?categoria=ASP.NET&postID=123456789
    o SiteMap ja ira ser ignorado, e apenas ira aparecer Portal > sendo que era para Portal > Desenvolvimento > Web > ASP.NET > Postagem
    quinta-feira, 21 de janeiro de 2010 01:48
  • Bom dia William.

    Realmente não é possível pois cada Item (ID=XXX) corresponde a uma nova URL e esta não foi prevista no siteMap. Uma alternativa é criar dinamicamente seu SiteMap ( http://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.sitemappath.sitemappath.aspx)

    Ou ainda considerar a possibilidade de usar URL ReWriting.

    http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
    http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing

    “Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
    Atenciosamente,
    Harley Araujo
    • Sugerido como Resposta Harley Araujo sexta-feira, 22 de janeiro de 2010 11:10
    • Marcado como Resposta wmnk sexta-feira, 22 de janeiro de 2010 16:10
    sexta-feira, 22 de janeiro de 2010 11:10