我有一个aspx表单
<form id="form1" runat="server" method="post">
<div>
<asp:Panel ID="Panel1" runat="server" Width="362px">
<asp:Table ID="Table1" runat="server" CellPadding="5">
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="Label1" runat="server" Text="UserName :"></asp:Label>
</asp:TableCell>
<asp:TableCell>
<asp:TextBox ID="userName" runat="server"></asp:TextBox>
</asp:TableCell>
----- SOME CODE HERE---
</asp:Table>
<asp:Button ID="btnSubmit" runat="server" Text="Login" OnClick="btnSubmit_Click" style="height: 29px" />
</asp:Panel>
</form>
我想将此表单中的值发布到click事件的不同页面。 点击事件代码是:
protected void btnSubmit_Click(object sender, EventArgs e)
{
Response.Redirect(ccpUrl);
}
当我在着陆页上执行Request.form时,它是EMPTY.it会抛出空引用异常 这是
的代码 private void GetRequestData()
{
_userName = HttpContext.Current.Request.Form["userName"].ToString();
_password = HttpContext.Current.Request.Form["password"].ToString();
_transactionID = HttpContext.Current.Request.Form["transactionID"].ToString();
if (Request.Form["sequenceNumber"] != null)
{
int.TryParse((HttpContext.Current.Request.Form["sequenceNumber"].ToString()), out _sequenceNumber);
}
else
_sequenceNumber = 0;
_tpsSystem = HttpContext.Current.Request.Form["tpsSystem"].ToString();
}
我在做错了什么?
我错过了什么吗?请帮忙。
答案 0 :(得分:0)
使用ClientIDMode="static"
。您的字段名称是动态生成的,与您在ID字段中放置的字段名称不匹配。
<asp:TextBox ID="userName" runat="server" ClientIDMode="Static"></asp:TextBox>
您还应该使用Server.Transfer
进行重定向,以确保将值传输到您要重定向到的后续页面。如果找不到某个键,Request.Form[...]
将返回null,并且该值上的ToString()
将为您提供NullReferenceException
(因为您无法在空值上调用方法)。
答案 1 :(得分:0)
Response.Redirect()
仅重定向页面。它不会转发任何标题信息。您需要设置跨页面PostBack。
https://msdn.microsoft.com/en-us/library/ms178139(v=vs.140).aspx 要么 http://www.codeproject.com/Tips/604553/Postback-and-Cross-Page-Posting-in-ASP-NET
应该给你一些指导。
或者您可以像这样设置按钮:
<asp:Button ID="btnSubmit" runat="server" Text="Login" PostBackUrl="/page2.aspx" style="height: 29px" />