Server.Transfer 出错了
a.aspx的C#代码
public string Name;
private void Button1_Click(object sender, System.EventArgs e)
{
Name = "afd";
Server.Transfer("b.aspx");
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
a newWeb;
newWeb = (a)Context.Handler;
string name;
name = newWeb.Name;
}
出现如下的错误:
无法将类型为“ASP.q_aspx”的对象强制转换为类型“b”
------解决方案--------------------会有这样的问题?
学习学习
------解决方案--------------------Server.Transfer("~/b.aspx");
这样试试,b.aspx在根目录吗
------解决方案--------------------看看 Response.Redirect 会不会出错先。。
------解决方案--------------------这个..貌似只有从a.aspx跳到b.aspx才不会错吧,从其他位置跳到a.aspx必然报错。
newWeb = (a)Context.Handler;
改成 newWeb = Context.Handler as a;
再判断newWeb == null 会好一些吧
------解决方案--------------------在aspx 用《%%》把你的父页面引入@
------解决方案--------------------改用Response.Redirect("xx.aspx");
------解决方案--------------------Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了
1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活;
2. Server.Transfer可以将页面参数方便传递到指定页面;
3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果;
4. Server.Transfer可以减少客户端对服务器的请求;
------解决方案--------------------感觉你的代码没问题,是不是别的地方出问题了
------解决方案--------------------Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了
1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活;
2. Server.Transfer可以将页面参数方便传递到指定页面;
3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果;
4. Server.Transfer可以减少客户端对服务器的请求;
------解决方案--------------------asp.net 2.0 中不能用这样的方法进行传值
应该这么写
a.aspx
public string Name;
private void Button1_Click(object sender, System.EventArgs e)
{
Name = "afd";
Server.Transfer("b.aspx");
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
a test = (a)PreviousPage;
string name = test.Name;
}
并且 还要在 b.aspx 的页面中添加 <%@ Reference VirtualPath="~/a.aspx" %>
这样就能把a 页面的属性值 传到 b 页面了