关于其中一种页面传值的问题?

kingofcss 2009-12-24 09:40:33
在ASP.NET的页面传值中,网上的资料基本都一个版本,其中有一个方法不太明白,下面是网上的原话

使用Server.Transfer
虽然这种方法有点复杂,但也不失为一种在页面传值的方式。
举个例子看看:
1、创建一个web form
2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下:
private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("webform2.aspx");
}
4、创建过程来返回TextBox1,TextBox2控件的值代码如下:
public string Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
get
{
return TextBox2.Text;
}
}
5、新建一个目标页面命名为webform2
6、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:
private void Page_Load
(object sender, System.EventArgs e)
{
//创建原始窗体的实例
WebForm1 wf1;
//获得实例化的句柄
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;

}
运行,即可看到传递后的结果了。




而我尝试的时候,总出现错误是:
//创建原始窗体的实例
WebForm1 wf1;
提示是:错误 1 找不到类型或命名空间名称“WebForm1”(是否缺少 using 指令或程序集引用?)

貌似意思是无法在WebForm2中实例化WebForm1
怎么回事啊?
...全文
111 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoming120 2009-12-25
  • 打赏
  • 举报
回复
引用 1 楼 jingshuaizhjason 的回复:
当然不行 webform2 Page_load的时候 webform1 应该不存在的


webform2 和webform1就像现在default1 和default2
这个以前的vs的写法,现在没有了,也就是2个页面,你现在之后default2 当然报错了。
hackervip1988 2009-12-25
  • 打赏
  • 举报
回复
public string Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
get
{
return TextBox2.Text;
}
}

你需要注意的一点是 属性 必须是静态的!!
这点切忌!!!!
hackervip1988 2009-12-25
  • 打赏
  • 举报
回复
我想说的是 winform 的处理机制是不一样的
你要想引用 那个窗体(Web)下的
首先 必须保证 窗体不能关闭
建议 看看页面的生命周期
我以前 弄过一次
在 .aspx 文件下还需要 引用一下
不知道 我回答的对不对
kingofcss 2009-12-25
  • 打赏
  • 举报
回复
有人回答吗?
kingofcss 2009-12-24
  • 打赏
  • 举报
回复
啊,没人回答了吗?
kingofcss 2009-12-24
  • 打赏
  • 举报
回复
那个这我知道,我是在说我的那种怎么回事啊?
koukoujiayi 2009-12-24
  • 打赏
  • 举报
回复
页面传值,如果用Server.Transfer将TextBox1.Text,TextBox2.Text的值传递:
传值:
Server.Transfer("webform2.aspx?t1="+TextBox1.Text+"&t2="+TextBox1.Text);

接受:
string T1=Request.QueryString["t1"].ToString();
string T2=Request.QueryString["t2"].ToString();
kingofcss 2009-12-24
  • 打赏
  • 举报
回复
WebForm1 wf1;
这句话提示是错误的,找不到类型或命名空间名称“WebForm1”(是否缺少 using 指令或程序集引用?)
怎么回事啊?
hjx398 2009-12-24
  • 打赏
  • 举报
回复

//可以的! WebForm1.aspx代码如下 ,它定义了WebForm1 类
public partial class WebForm1 : System.Web.UI.Page
{
public string Name
{
get
{
return TextBox1.Text;
}
}

public string EMail
{
get
{
return TextBox2.Text;
}
}

protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("webform2.aspx");
}
}

//webform2 代码如下
public partial class webform2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//创建原始窗体的实例
WebForm1 wf1;
//获得实例化的句柄
wf1 = (WebForm1)Context.Handler;
Label1.Text = wf1.Name;
Label2.Text = wf1.EMail;
}
}

kingofcss 2009-12-24
  • 打赏
  • 举报
回复
对啊,为什么不能在页面2里实例化页面1啊,网上貌似都说可以ia?
silentwins 2009-12-24
  • 打赏
  • 举报
回复
你那是WinForm的做法...

this.Response.Redirect("webform2.aspx?a="+this.Label1.Text+"&b="+this.Label1.Text);


webform2页面用this.Request.QueryString["a"]取值就行了

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧