2014-04-29 36 views
0

我試圖在發佈後重新捕獲一些表單值,但是我遇到了相當多的困難。我的表單有2個字段:如何重新獲取表單數據?

<strong>Username:</strong> <asp:TextBox ID="txtUsername" runat="server" Width="200px" /><br /><br /> 
<strong>Password:</strong> <asp:TextBox ID="txtPassword" runat="server" Width="200px" TextMode="Password" /> 

而在後面的代碼中,我試圖捕獲用戶名,但一直空手而歸。這是我目前的實施:

​​3210

我錯過了什麼?

回答

1

你的代碼工作完全正常對我來說:

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" 

Inherits="_Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml" id="MainHTML" runat="server"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript"> 

    </script> 

</head> 
<body> 
    <form runat="server"> 
     <strong>Username:</strong> <asp:TextBox ID="txtUsername" runat="server" Width="200px" /><br /><br /> 
     <strong>Password:</strong> <asp:TextBox ID="txtPassword" runat="server" Width="200px" TextMode="Password" /> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 
    </form> 
</body> 
</html> 

CS:

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (HttpContext.Current.Request.HttpMethod == "POST") 
     { 
      txtUsername.Text = Request.Form["txtUsername"]; 
     } 
    } 
} 
0

首先要檢查它是否是你可以用這個檢查後:

if (IsPostback) { //do something here } 

,你會發現怎麼把它發佈到itself.When如果在同一頁面上進行,將無法正常工作你點擊同一頁面中的一個按鈕數據通常會保存在viewstate中。因此在給你更多的信息之前,我們需要有更多關於它的信息才能更好地幫助你。

0

沒有看到在.aspx頁面的其餘部分,沒有什麼離譜顯然是錯誤的存在,但是:

  • 與RUNAT =「服務器」表單中的文本框?
  • 你有沒有運行軌跡來查看錶單變量(如果有)包含什麼?
  • 你確定頁面正在提交,而不僅僅是刷新?
  • 您是否嘗試了一個斷點來查看if條件的計算結果是否爲真(與上面的點類似)?
0

我認爲你可以添加onclick =提交表單的按鈕,因爲文本框在服務器上運行。在等號後如果你按兩次tab鍵,它會自動在後面的代碼中生成一個事件。然後你可以在後面的代碼中這樣做,將它保存在會話中。

string firstName = txtUsername.Text; 
string lastName = txtPassword.Text; 
Session["FirstName"] = firstName; 
Session["LastName"] = lastName; 

,並對其進行訪問後

string firstName = Session["FirstName"];