2014-04-29 37 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"];