Hej xaphod, Tack för svaret Andreas, xaphod, Andreas Tack, xaphod, Nu har jag testat en hel del men kört fast. I WebForm1 har jag en asp:radiobuttonlist och en knapp, när man klickar där körs: xaphod,Posta formulär
Har ett formulär med serverkontroller, när jag klickar på Submit gör jag en massa uträkningar men sedan vill jag posta variabler till en annan aspx-sida (där jag då fortsätter med steg 2 i formulärhanteringen), hur gör jag?
mvh /xaphodSv: Posta formulär
Du kan väl använda dig av en Response.Redirect("andrasidan.aspx") och skicka med en querystring som innehåller de variabler som du är intresserad av
[C#]
Response.Redirect("andrasidan.aspx?ett=123&tva=hej");
[VB.NET]
Response.Redirect("andrasidan.aspx?ett=123&tva=hej")
Sen kan du läsa ut med hjälp av ditt <b>Request</b> objekt
[C#]
int ett = Convert.ToInt32(Request.QueryString["ett"]);
string tva = Request.QueryString["två"];
[VB.NET]
Dim ett As Integer = Convert.ToInt32(Request.QueryString.Item("ett"))
Dim tva As String = Request.QueryString.Item("två")
Hoppas detta är till någon nytta,
//Andreas
Sv: Posta formulär
Men jag vill inte skicka variablerna med redirect eftersom de då syns i URL'en.Sv: Posta formulär
Oki då ska du använda dig av Server.Transfer som flyttar hela httpcontexten till en annan sida. Metoden kan antingen aropas med en eller två parametar
[C#]
[C#]
public void Transfer(
string path,
bool preserveForm
);
[VB.NET]
[Visual Basic]
Overloads Public Sub Transfer( _
ByVal path As String, _
ByVal preserveForm As Boolean _
)
För att göra det du vill så skall du använda denna och skicka med <b>True</b> till den andra variableen som säger till metoden att bibehålla alla QueryString <b>och</b> formdata som skickats med.
//Andreas
Sv: Posta formulär
Det där har jag inte testat, låter som att det är det jag är ute efter!!
Tack så mycket!! :)Sv: Posta formulär
Löste ditt problem sig eller behöver du mer hjälp? Om du är klar med detta problemet så markera inlägget som antingen <b>löst</b> (om du hittat en lösning - skriva gärna vad den var så andra kan ta del av både fråga och svar) eller <b>stängd</b> (om du inte hittat en lösning men problemet inte är aktuellt längre).
Om du inte löst problemet och vill ha mer hjälp så skriv ett inlägg som beskriver var du står idag med problemet (vad du har provat etc) så skall vi se om vi inte kan hitta en lösning.
//AndreasSv: Posta formulär
WebForm1.vb
<code>
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Server.Transfer("WebForm2.aspx", True)
End Sub
</code>
I WebForm2.vb har jag:
<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sValue As String
sValue = Request.Form(0)
Response.Write("Form: " & sValue.ToString & "<br>")
End Sub
</code>
Nånting skickas, för jag får ut en massa obegripliga tecken.
Men hur konverterar jag till rätta värdena?
/xaphodSv: Posta formulär
Du gör <b>nästan</b> rätt. Det du troligen får ut är en extra information som kan skickas med i bakgrunden på alla ASP.NET sidor beroende på vad som är aktiverat etc. När du postar en form så kan t.ex följande ligga i <b>Request.Forms</b> också (obs det är namnet på nycklarna inte dess värde).
__EVENTTARGET
__EVENTARGUMENT
__VIEWSTATE
I ditt fall tror jag att du får ut något i stil med "dDwyMDg1NzgwMDkwO3Q8O2w8aTwxPjs+O2w8dDw7bDx" fast mycket längre? Detta är ViewState information. Du bör inte läsa ur <b>Request.Forms</b> med hjälp av ett index utan med hjälp av namnet på den kontroll du vill läsa av
Följande exempel visar hur du hämtar informationen för en textbox med namnet TextBox1
[C#]
string sValue = Request.Form["TextBox1"];
Response.Write("Form: " + sValue.ToString() + "<br>");
[VB.NET]
Dim sValue As String = Request.Form.Item("TextBox1")
Response.Write("Form: " & sValue.ToString & "<br>")
Hoppas det löser sig!
//Andreas