C# 如何重新获取表单数据?

C# 如何重新获取表单数据?,c#,asp.net,C#,Asp.net,我试图在一些表单值发布后重新获取它们,但遇到了相当大的困难。我的表单有两个字段: <strong>Username:</strong> <asp:TextBox ID="txtUsername" runat="server" Width="200px" /><br /><br /> <strong>Password:</strong> <asp:TextBox ID="txtPassword" runat=

我试图在一些表单值发布后重新获取它们,但遇到了相当大的困难。我的表单有两个字段:

<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" />

我遗漏了什么?

首先要检查这是否是一篇文章,您可以通过以下内容进行检查:

if (IsPostback) { //do something here }

您将看到,如果在同一页上完成,则将无法工作,因为它会自动发布。当您在同一页中单击按钮时,数据通常保存在viewstate中。因此,在提供更多信息之前,我们需要了解有关它的更多信息,以便更好地帮助您。

没有看到.aspx页的其余部分,这里没有明显的错误,但是:

  • 文本框是否在带有runat=“server”的表单中
  • 您是否运行过跟踪以查看表单变量(如果有)包含哪些内容
  • 您确定页面正在提交,而不仅仅是刷新吗
  • 您是否尝试过使用断点来查看if条件的计算结果是否为true(类似于上面的点)

    • 我认为您可以在提交表单的按钮中添加onclick=,因为文本框在服务器上运行。在等号之后,如果按tab键两次,它将在代码隐藏中自动生成一个事件。然后,您可以在代码隐藏中执行类似的操作,将其保存在会话中

      string firstName = txtUsername.Text;
      string lastName = txtPassword.Text;
      Session["FirstName"] = firstName;
      Session["LastName"] = lastName;
      
      并在以后访问它

      string firstName = Session["FirstName"];
      

      你的代码对我来说非常好:

      ASPX:

      string firstName = Session["FirstName"];
      
      <%@ 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>
      
      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"];
              }
          }
      }