如何重新获取表单数据?

时间:2014-04-29 22:17:53

标签: c# asp.net

我试图在发布后重新获取某些表单值,但是我遇到了很多困难。我的表单有两个字段:

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

在后面的代码中,我试图捕获用户名,但一直空手而来。这是我目前的实施:

protected void Page_Load(object sender, EventArgs e)
{
        if (HttpContext.Current.Request.HttpMethod == "POST")
        {
            txtUsername.Text = Request.Form["txtUsername"];
        }
 }

我错过了什么?

4 个答案:

答案 0 :(得分: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"];
        }
    }
}

答案 1 :(得分:0)

首先要检查它是否是一个你可以检查的帖子:

if (IsPostback) { //do something here }

你会看到,如果在同一页面上完成它将无法工作因为它发布到自己。当你点击同一页面中的按钮数据通常保存在viewstate.So之前给你更多信息我们需要有更多关于它的信息可以更好地帮助你。

答案 2 :(得分:0)

在没有看到.aspx页面的其余部分的情况下,那里显然没有明显的错误,但是:

  • 是表单中的文本框,其中包含runat =&#34; server&#34;?
  • 您是否运行了跟踪以查看Form变量(如果有)包含哪些内容?
  • 你确定页面正在提交,而不仅仅是刷新了吗?
  • 您是否尝试过断点以查看if条件是否计算为true(类似于上述点)?

答案 3 :(得分:0)

我认为你可以将onclick =添加到提交表单的按钮,因为文本框在服务器上运行。等号后,如果按两次选项卡,它将自动在后面的代码中生成一个事件。然后你可以在后面的代码中做这样的事情来保存它。

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

并稍后访问

string firstName = Session["FirstName"];