我试图在发布后重新获取某些表单值,但是我遇到了很多困难。我的表单有两个字段:
<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"];
}
}
我错过了什么?
答案 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页面的其余部分的情况下,那里显然没有明显的错误,但是:
答案 3 :(得分:0)
我认为你可以将onclick =添加到提交表单的按钮,因为文本框在服务器上运行。等号后,如果按两次选项卡,它将自动在后面的代码中生成一个事件。然后你可以在后面的代码中做这样的事情来保存它。
string firstName = txtUsername.Text;
string lastName = txtPassword.Text;
Session["FirstName"] = firstName;
Session["LastName"] = lastName;
并稍后访问
string firstName = Session["FirstName"];