ich in page1.aspx webform haben:Wie Request.Form verwenden, um Daten aus einem Text in vorherigen Seite zu gelangen
<asp:TextBox runat="server" ID="txtPassCode1" TextMode="Password"></asp:TextBox>
<asp:Button runat="server" ID="btnTakeTest1" Text="Go to page 2" PostBackUrl="page2.aspx" />
So in Page2.aspx Ich versuche, den Wert von txtPassCode1
, abzurufen, aber Ich weiß nicht, wie ich es finde, also finde ich diesen Code und lege ihn in Page_Load event von page2.aspx code hinter, ich denke im Grunde zeigt er alle POST-Daten von der Seite1 an, also setze ich "-END-" am Ende von jedem Request.Form und zeigen Sie es zu einem Aufkleber an.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack && Request.RequestType == "POST")
{
if (Request.Form != null && Request.Form.Keys.Count > 0)
{
string[] keys = Request.Form.AllKeys;
for (int i = 0; i < keys.Length; i++)
{
lblPOST.Text = lblPOST.Text + keys[i] + ": " + Request.Form[keys[i]] + " -END- <br>";
}
}
}
}
Lassen Sie sagen, ich 1234
in page1 eingegeben und die Taste getroffen, jetzt habe ich in Page2.aspx bin und ich diesen:
__EVENTTARGET: -END-
__EVENTARGUMENT: -END-
__VIEWSTATE: YznkkVzGlJ8TtCKM2Vzx7+DEhiSoaItNvqFaqJKJYPoMTZu7jerq3btXp1r0iob13dEaKV1fSheRySmdCl69U5KRukE4bi2gD68nYOoj0f93ysiTufpvcr4j1t09lMDwjfuQDmVuJqrDlyzEffG+IkOQfdNEn1sAukVwGBwzCGI= -END-
ctl00$ctl00$MainContent$MainContent$txtPassCode1: 1234-END-
ctl00$ctl00$MainContent$MainContent$btnTakeTest1: Take this test -END-
ctl00$ctl00$MainContent$MainContent$txtPassCode2: -END-
__VIEWSTATEGENERATOR: 22DEEF5F -END-
__PREVIOUSPAGE: OQ8E2uts0p1smCGF7aTw5vs7Ykqr-CAG0J7QCt87boTAs4TxBB2hkHCK_tPL2nCs45bS9uR7NMxjva1XFW7DDI4_CO2Mt84c8cQu_1Yo1gDenS9hrXC5wlh3iaO-Ftv_0 -END-
__EVENTVALIDATION: LpMm3Lf2/xeGRstUHMr5WL79abGTpD92nJ/Ltwjsluwt0J7CmS72WqREhKn4x4jz8zvliCoBOxOAc8VhdKHRYajTycLpjxwSu9iEEWR92JvTYsHvKU9qCq1Z95thv0y9TeUW0mHMRqfOA8Pcd4cpYEL7oT2Iq+l+p2JiDFTTyr8yC28WtWj+E1vP018j3+qt -END-
So kann ich das viert man sehen, heißt es: ctl00$ctl00$MainContent$MainContent$txtPassCode1: 1234-END-
=>1234
ist was ich will. Wie kann ich nur diesen Wert abrufen?
Ich Test lblPOST.Text = Request.Form["ctl00$ctl00$MainContent$MainContent$txtPassCode1"];
und es funktioniert, aber wird ctl00$ctl00$MainContent$MainContent$txtPassCode1
immer gleich bleiben oder es wird sich ändern?
Sie können das gleiche wie 'txtPassCode1.UniqueID' bekommen, aber ja, es sollte das gleiche sein. Es wird geändert, wenn die Reihenfolge der Steuerelemente geändert wird (z. B. ctl00 ist das erste Steuerelement. Wenn sich die Reihenfolge ändert, wird es ctl01). Und in der Theorie könnte es in einigen .NET-Versionen nie geändert werden. Sie können UniqueID von PreviousPage in der Sitzung speichern und dann wiederverwenden –
Ich möchte keine Session verwenden, sonst lege ich einfach den Wert von Textfeld zu Sitzung und nicht um POST oder ID oder etwas anderes wirklich kümmern. –