C# 在aspx页面中使用PostBackURL时无法获取值
我有一个带有文本框和按钮的页面。我在这个按钮上设置了一个postbackurl,并在目标页面的加载事件上编写了以下代码:C# 在aspx页面中使用PostBackURL时无法获取值,c#,asp.net,C#,Asp.net,我有一个带有文本框和按钮的页面。我在这个按钮上设置了一个postbackurl,并在目标页面的加载事件上编写了以下代码: if (PreviousPage != null) { string name = ((TextBox)PreviousPage.FindControl("TextBox1")).Text; Response.Write(name); } 使用调试器时,我发现出现以下错误: Object re
if (PreviousPage != null)
{
string name = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;
Response.Write(name);
}
使用调试器时,我发现出现以下错误:
Object reference not set to an instance of an object.
我无法找出问题出在哪里,因为当我在上一页上悬停时,我可以看到第一页的名称,当我看到TextBox1的值时,它显示
{System.Web.UI.WebControls.TextBox}
,而不是我输入的值 设置PostBackUrl
时,实际上是将表单发布到目标页面。这意味着您应该能够使用请求访问该值。表单
:
string value = Request.Form["MyTextBoxValue"].ToString();
如果表单方法是GET
,则应该能够通过QueryString
访问这些值
编辑
如果您只需要将表单提交到另一个页面,您还可以考虑更改窗体<代码> Actudio<代码>,以指向目标页。然后,您可以使用
请求对象访问这些值。我现在可以获得textbox的值。当将aspx页面与母版页一起使用时,我们需要首先获取contentplaceholder的引用,然后使用该引用获取textbox的引用
ContentPlaceHolder Content1 =(ContentPlaceHolder)PreviousPage.Master.FindControl("MainContent");
TextBox SourceTextBox =
(TextBox)Content1.FindControl("TextBox1");
Response.Write(SourceTextBox.Text);
这将打印textbox.text的值。您没有使用代码获取文本框的值的原因是您没有在.text之后使用.ToString()。它需要:
if (PreviousPage != null)
{
string name = ((TextBox)PreviousPage.FindControl("TextBox1")).Text.ToString();
Response.Write(name);
}
试试看它是否有效 您使用什么在页面上传输到另一个页面Server.Transfer
或Response.Redirect()
两者都没有…仅将第一页按钮控件的PostBackURL属性设置为abc.aspx。并在第二页的load事件中写入上述代码。好的。。您正在使用上下文处理程序..根据我的信息,我没有使用上下文处理程序!也许我错了,因为我对网络表单还不熟悉。我只知道这个。请提供上一页的标记。。和接收页面名称我已尝试使用您的方法,但它不适用于PostBackURL。您是否尝试仅更改表单操作和方法,而不是使用PostBackURL
?