Array
(
)

Dúvidas sobre passagem de paramêtros entre páginas ASP.NET

Thiago Narcizo
|
MVP
    29 set 2008

Seguindo o exemplo da utilização da classe HttpContext para passagem de paremêtros entre as páginas .aspx disponibilizado aqui, encontrei um problema e não consegui resolvê-lo. Quando estou passando os paremetros ocorre um erro que me diz que o caminho não está especificado para página a ser aberto, isto acontece porque as páginas estão fisicamente em diretórios diferentes. Gostaria de saber como faço para conseguir referenciar a pasta a ser aberta.
Ex:
#Código

public static void PassParemeters( string reportServerUrl, string reportPath, string parametersNames, string paremetersValues )
        {
            HttpContext.Current.Items.Add( "reportServerUrl", reportServerUrl );
            HttpContext.Current.Items.Add( "reportPath", reportPath );
            HttpContext.Current.Items.Add( "parametersNames", parametersNames);
            HttpContext.Current.Items.Add( "parametersValues", paremetersValues );

            HttpContext.Current.Server.Transfer( WebReportServer.aspx" );
        }//-- Fim do método PassParemeters


Obs.: O exemplo acima ocorre um erro, dizendo que não conseguiu localizar a página. Já tentei colocar o endereço que único que aparece ao visializar individualmente a página a ser aberta, porém não funcionou. Seria algo do tipo:
#Código
            HttpContext.Current.Server.Transfer( "http://localhost:5383/WebReportServer.aspx" );


Peço ajuda se possível.
Sem mais,
Thiago Dantas#Código
#Código


rafaelreg20
   - 30 set 2008

Você pode fazer dessa maneira.
Response.Redirect(´PáginaReceber.aspx?´ & Codigo)
e na PáginaReceber Você pode receber o parâmetro por queryString.
Cria uma váriavel do tipo string
Dim cCodigo as string = Request.QueryString(´Codigo´)

Thiago Narcizo
|
MVP
    30 set 2008

Vlw... testei o q me disse e funcionou... só queria saber pq da outra maneira não funcionou para poder firmar o conceito e ajudar outras pessoas que enfrentarem o mesmo problema.

rafaelreg20
   - 01 out 2008

Thiago,
Eu procurei uma explicação para a sua duvida na net e encontrei a seguinte explicação.
Quando você faz um transfer ele literalmente faz um post da página inteira.
- Server.Transfer -> Apenas para páginas no mesmo servidor web, utilizando HttpContext.Items (assim como sessions, porém assim que o response for concluído a memória é liberada). Ex:
Current.Context.Items(´nome´) = Page.txtNome.Text
Server.Transfer(_urlDestino, false)
.... na outra página ....
Dim s As String = CType(Current.Context.Items(´nome´), String)

Thiago Narcizo
|
MVP
    01 out 2008

Valew... esclareceu muita coisa...
É isso mesmo, ao fazer a passagem de parametros entre aplicações que se encontram em servidores diferentes o uso comum e certo seria Response.Redirect(url)