请教页面跳转问题

别样苍茫 2010-04-30 11:29:11
A页面提交表单 之后 到B页面查看结果

查看结果之前 先判断是否已经登录

如果未登录,则跳转到C页面登录,登录成功之后返回到B页面

我现在B页面时在Page_Load事件中判断 并跳转的


但是Request.UrlReferrer方法并认可我这点,它的返回值总是A页面。



之后 : 我测试了两个页面的跳转 testA 和 testB 如果跳转页面是最上级的话 Request.UrlReferrer返回值为NULL


请教下我该如何处理好这个问题?
...全文
181 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
vip__888 2010-04-30
  • 打赏
  • 举报
回复
楼主,你的思路是没有问题的。
但是在表单提交的时候=》查看数据=》这里检查是否登录会刷新一次页面=》
你可以使用cookie保存你上一次的登录。

或者在url上传递上一次打开的url 比如 http://www.www.com?return=asp.net.aspx

csdn上估计也是使用cookie的。登录后返回上一次登录界面。

jkaty 2010-04-30
  • 打赏
  • 举报
回复
用 Session 判断
阿彪兄 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 littleqiang520 的回复:]
可以用表单验证啊
在web.config里面配置

如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
[/Quote]
这个方案在.net应用Microsoft安全认证时比较有用
Peter200694013 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 luqc1985 的回复:]
我测试了两个页面的跳转 testA 和 testB 如果跳转页面是最上级的话 Request.UrlReferrer返回值为NULL


请教下我该如何处理好这个问题?
[/Quote]
判断下
if(Request.UrlReferrer!=null)


看看这个:
http://www.cnblogs.com/freeskycd/archive/2010/03/03/1677750.html
骑猪看海 2010-04-30
  • 打赏
  • 举报
回复
跳什么页面直接Response.Redirect("*.aspx");
lester19872007 2010-04-30
  • 打赏
  • 举报
回复

Page_load(object obj,EventArgs e)
{
if(!IsPostBack)
{
if(Request.UrlReferrer!=null)
{
ViewState["UrlReferrer"]=Request.UrlReferrer.ToString();
}
}
}

使用前需要进行判断:

if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer.PathAndQuery != null)
{
string previousURL = Request.UrlReferrer.PathAndQuery;
}



在使用Request.UrlReferrer时还要注意:
1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因

为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3. 点击刷新按钮不会改变Request.UrlReferrer


messi_yang 2010-04-30
  • 打赏
  • 举报
回复
來看哈····
Peter200694013 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 luqc1985 的回复:]
A页面提交表单 之后 到B页面查看结果

查看结果之前 先判断是否已经登录

如果未登录,则跳转到C页面登录,登录成功之后返回到B页面

我现在B页面时在Page_Load事件中判断 并跳转的
[/Quote]
A是一个数据提交页面,B是一个结果查看页面,C是登陆页面。
可以在未登陆时提交数据,但是提交后如果查看结果需要已登陆。
我理解的对不?

不解:如果我没有提交数据,登陆后能到B页面么?如果能,B会显示以前提交的结果么?
红街咖啡 2010-04-30
  • 打赏
  • 举报
回复
有分就有动力
shelless 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 littleqiang520 的回复:]
可以用表单验证啊
在web.config里面配置

如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
[/Quote]


我也是这么想的,不行吗?

还是你脑子转不过弯了。
红街咖啡 2010-04-30
  • 打赏
  • 举报
回复
那些登录未登录判断下就可以了
红街咖啡 2010-04-30
  • 打赏
  • 举报
回复
Form
A.aspx:
public string id(get{return TextBox1.Text;})//定义公共属性
Server.Transfer("B.aspx");//重定向到目标页面
B.aspx:
//HTML中引入PreviousPageType 指令
virtualPath=A.aspx
<%@PreviousPageType virtualPath=A.aspx %>
//代码中获取From数据
string abcd=PreviousPage.id;

您还可以使用context对象 。于Form的方法类似,这个方法也能保持大量的数据,缺点也一样。但是用的方法比较简单
A.aspx
Context.Items["id"]="1";赋值
Server.Transfer("b.aspx");
B.aspx
string id=Context.Items["Id"].ToString();
Context.Items.Remove();//过河拆桥

ViewState Appllcation Session 静态变量 缓存Cache Cookie QueryString 都可以玩
别样苍茫 2010-04-30
  • 打赏
  • 举报
回复
难道你们都没看到 Request.UrlReferrer 这个方法吗?


算了 我自己想办法吧,可能是我问题没描述清楚

谢谢大家了
阿非 2010-04-30
  • 打赏
  • 举报
回复
如果未登录,则跳转到C页面登录
----------------------------

这里你应该告知c页面,登录成功后 是否有指定的页要返回

如果有 返回指定页,没有返回默认页
jianghuxianke 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 littleqiang520 的回复:]
可以用表单验证啊
在web.config里面配置

如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
[/Quote]这个貌似是一开始就要登陆,不然进行不了任何操作哦
jianghuxianke 2010-04-30
  • 打赏
  • 举报
回复
如果是要实现aN页面,都要判断登陆,由c到bN定是要加参数判断来源和去处的
liq1979 2010-04-30
  • 打赏
  • 举报
回复
可以用表单验证啊
在web.config里面配置

如果没有登录,定位到登录页面
FormsAuthentication.RedirectToLogin();
登录成功,定位到所需页面
FormsAuthentication.RedirectFromLogin(txtUserName.Text,true);
别样苍茫 2010-04-30
  • 打赏
  • 举报
回复
难道是因为我没描述清楚?
ck11926375 2010-04-30
  • 打赏
  • 举报
回复
直接跳转不就完了啊
Response.Redirect("c.aspx");

wangfenfen 2010-04-30
  • 打赏
  • 举报
回复
判断是否登录完之后用这个跳转
Response.Redirect("B.aspx");
加载更多回复(3)

62,046

社区成员

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

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

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

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