Problema con il passaggio di un link

domenica 25 ottobre 2009 - 09.36

perla0279 Profilo | Senior Member

Ciao,
ho problemi con la creazione di un link....

in passato ho gia usato un metodo simile ma senza problemi con il nuovo progetto che ho realizato ..


dentro la varabile ho il valore = 100 (comunque sarà un valore numerico.) a cui unisco un valore stringa
il risultato è questo : '100jhhjdjdjdjdkdkldijcjn'

il codice usato:
valueString = "home.aspx?Utente=" + valueString + "hfjdhjdjhd"
Response.Redirect(valueString, True)
Ricevo questo errore : 'Property evaluation failed.'

Stesso modo di costruire la stringa lo uso in un treeView ed anche in questo caso non mi lascia usare il link così.....

potete aiutarmi perchè non so proprio che altro fare.


elena

ysdemarc Profilo | Expert

dove ti da errore nella Redirect?

così a vista credo che il problema sia nella pagina che chiami..ma senza vedere una riga di codice mi viene difficile capire

oppure prova a verificare la lunghezza degli argomenti..se non erro non puoi passare stringhe che superino un tot byte (che al momento non ricordo) tramite url

perla0279 Profilo | Senior Member

ti posto il codice della pagina:
Adesso è un pò incasinato perchè ho fatto un sacco di prove per capire dove era il problema....... ma senza risultato :-( :-(


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim user As String = utente.Text
Dim pswd As String = pw.Text

Dim da As New SqlClient.SqlDataAdapter
Dim ds As New DataSet
Try

Dim testCMD As SqlClient.SqlCommand = New SqlClient.SqlCommand("Ro", objdb)
testCMD.CommandType = CommandType.StoredProcedure


Dim pRiferimentoLingua As SqlClient.SqlParameter = testCMD.Parameters.Add("@Password", SqlDbType.NVarChar, 10)
pRiferimentoLingua.Direction = ParameterDirection.Input
pRiferimentoLingua.Value = pswd


Dim pRiferimentoPagina As SqlClient.SqlParameter = testCMD.Parameters.Add("@CodiceCliente", SqlDbType.NVarChar, 100)
pRiferimentoPagina.Direction = ParameterDirection.Input
pRiferimentoPagina.Value = user


Dim RetValue As SqlClient.SqlParameter = testCMD.Parameters.Add("RetValue", SqlDbType.Int)
RetValue.Direction = ParameterDirection.ReturnValue
Dim Ris As Integer = testCMD.ExecuteScalar

Dim valueString As String
valueString = RetValue.Value

Dim Cod As String
Cod = RetValue.Value
Dim da1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter("select id from ac where id ='" + Cod + "'", objdb)
Dim ds1 As DataSet = New DataSet()
da1.Fill(ds1, "account")
Dim row As DataRow() = ds1.Tables("account").Select
If row.Length > 0 Then
If Not IsDBNull(row(0)(Trim("id"))) Then
valueString = row(0)(Trim("id"))
End If
End If

valueString = "home.aspx?Utente=" + valueString + "hfjdhjdjhd"
If RetValue.Value = 1 Then
Exit Sub
Else
Response.Redirect(valueString, True)
End If

Catch ex As Exception
Response.Redirect("error.aspx")
End Try

End Sub



Mi entra dentro il catch subito dopo il response.redirect .......... con l'errore che ho postato (non mi dà nessun altra indicazione quindi non riesco a capire perchè.

Uso un link simile in un altro sito con molte più variabili passate in quella maniera tra le pagine..... e funzionano
Mentre questo nuovo progetto non ne vuole sapere ..........................

La pagina di destinazione funziona perchè se scrivo a mano il link la pagina di destinazione riceve le variabili in modo corretto

Pinky Profilo | Junior Member

Perchè non prendi il valore di valueString e lo testi su un browser?

ciao
Alessandro

perla0279 Profilo | Senior Member

se inserisco questo:
home.aspx?Utente=100hfjdhjdjhd

che è il valore di ValueString mi si apre la pagina di destinazione correttamente..........
lo stesso errore me lo dà anche sul link di menu...... che ha lo stesso concetto di passaggio variabili.....

Però tutte le pagine inserendo la variabile da browser non mi danno errore è quando cerco di passarle attraverso il progetto che si incantano.

ysdemarc Profilo | Expert

sembra corretto... prova a passare forzatamente al redirect l'indirizzo "http://tuodominio/home.aspxUtente=100hkhkjkjhjl"

potrebbe essere che non trova la pagina nel dominio..

una domanda... la stringa sul browser come l'hai provata? scritta a manina?..se è così prova a farti una variabile tipo

Dim strUrl as string = "Home.aspx?Utente=" + valueString + "jhjhjhjhjh"

Response.Redirect(strUrl, true)

..metti un punto di debug sul redirect copiati il valore di strUrl e provalo direttamente sul browser.

a parer mio ho ha qualche carattere strano negli argomenti (tipo nel valueString oppure nella restante parte di caratteri) oppure qualche errore all'inizio della pagina chiamata
Vincenzo
Programmatore sbilenco

perla0279 Profilo | Senior Member

ciao

penso di aver provato tutto quello che mi hai scritto ma non va niente..........
non riesco proprio a capire dove sia il problema perchè non mi è mai capitato un errorre del genere in vita mia:

prima ho scritto questo:
Dim Cod As String
Cod = RetValue.Value
Dim da1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter("select id from account where id ='" + Cod + "'", objdb)
Dim ds1 As DataSet = New DataSet()
da1.Fill(ds1, "account")
Dim row As DataRow() = ds1.Tables("account").Select
If row.Length > 0 Then
If Not IsDBNull(row(0)(Trim("id"))) Then
valueString = row(0)(Trim("id"))
End If
End If

perchè pensavo che non riuscisse a prendersi la variabile return dalla stor procedure.................

poi ho stritto :
valueString = "home.aspx?Utente=" + valueString + "hfjdhjdjhd"

provato anche a copiarlo a mano , il link che esce da questa stringa è :
http://localhost:54067/home.aspx?Utente=100hfjdhjdjhd

coppiandolo a mano funziona tranquillamente.......... poi sull'altra pagina ho lo stesso errore per un antro link che usa la stessa sintassi (ma questo non conta) la pagina si apre per intero....

l'errore viene fuori sempre sullo stesso punto ..................
sul Response.Redirect
sempre uguale qualsiasi cosa scrivo
'Property evaluation failed.
che non riesco a capire cosa sia...........

ysdemarc Profilo | Expert

forse abbiamo trovato la soluzione

qui http://support.microsoft.com/kb/312629/EN-US/ dice di scrivere la Redirec in questo modo:

Response.Redirect(valueString, False)


fammi sapere se funziona.

ciao
Vincenzo
Programmatore sbilenco

perla0279 Profilo | Senior Member

ha funzionato ..................
in effetti bastava modificare quel valore e il link è passato correttamente...........

addesso provo le altre pagine....... :-) :-)

grazie mille


Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5