ASP.Net将文本字段值传递给不同网页上的标签

本文关键字:网页 标签 Net 文本 字段 值传 ASP | 更新日期: 2023-09-27 18:17:21

我有一个名为webForm1的页面,该页包含一个文本字段,当用户输入值时,我希望该值显示在webForm2上的标签中,当我这样做时,我得到一个错误:Label1由于其保护级别

而无法访问。

这是我在webForm1

中做的
webForm2 webform = new webForm2();
webform.Label = textBox1.Text;
Response.redirect("~/webForm2.aspx");

但上面是不工作,我是新的编程和不熟悉类和复杂的编程,什么是最简单的方法来获得标签中的文本框的值?

谢谢。

ASP.Net将文本字段值传递给不同网页上的标签

您无法在当前页面中实例化页面类(webForm2)。您必须以另一种方式将值传递给第二页,然后绑定标签。正如Jason P所说,ASP。. NET框架为您实例化webForm2页面,您不能自己做。

如果数据不敏感,则使用Query String:

Response.Redirect("~/webForm2.aspx?label=" + textBox1.Text);

这会将用户重定向到url为whatever.com/webForm2.aspx?label=whatevervalue的页面。在第二页,您可以从查询字符串中提取文本并将其绑定到标签:

public void Page_Load(object sender, EventArgs e)
{
    Label.Text = Request.QueryString["label"].ToString();
}

与WinForms不同,您不会像那样实例化下一个表单。基本上,您的前两行对于WebForms是不正确的。第三行是你要集中注意力的地方。您将用户重定向到第二个表单,允许框架负责实例化它。

这是因为WebForms,尽管是"表单",仍然是一个HTTP web应用程序,通过请求和响应来完成所有的事情。通过发出重定向,您告诉客户端放弃当前页面并对指定页面进行新请求。

有许多方法可以将值发送到下一页。您可以将其存储在某种持久化介质中(例如数据库),也可以使用会话状态等。目前最简单的方法可能是将其包含在查询字符串中:

Response.Redirect("~/webForm2.aspx?label=" + textBox1.Text);

然后在下一页你会得到字符串从:

Request.QueryString["label"]

可能首先要对文本值进行url编码,我不知道Redirect()是否为您这样做。还要记住,这不是将数据从一个页面传输到另一个页面的"安全"传输,因为客户端具有修改URL中的值的完全访问权。因此,如果这是敏感的数据,那么您将需要考虑其他方法。(请记住,"敏感"可能是一个相对术语……信息本身可能不敏感,但您可能会在下一页上使用它做系统敏感的事情,从发布的代码中我们无法知道。