关于母板页+框架的跳转

Leo2048 2012-03-31 04:35:27
我的网站根目录下面有一个Iframe_right.master母板页。其中有以下代码

<div id="welcome">
<asp:Label ID="lblUser" CssClass="roleCss" runat="server" Text=""></asp:Label>
<asp:LinkButton ID="lbtnExit" CssClass="exit" Text="退出系统" runat="server"
onclick="lbtnExit_Click"></asp:LinkButton>
</div>
<div id="masterContent">
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

</asp:ContentPlaceHolder>
</div>

后台部分

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session["user"] != null)
{
lblUser.Text = "欢迎您!" + Session["user"].ToString();
}
else
{
lblUser.Text = "您还没有登录!";
lbtnExit.Text = "登录";
}
}
}
/// <summary>
/// 退出系统
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtnExit_Click(object sender, EventArgs e)
{
Session.Clear();
//因为有框架,所以用JS跳转
Response.Write("<script>this.parent.location='Login.aspx'</script>");//Login.aspx也位于网站根目录下
}

问题是,我现在网站的根目录下有一个文件夹user,里面有一个页面a.aspx,而且引用了Iframe_right.master母板页。但在a.aspx页面点击“退出系统”,显然this.parent.location='Login.aspx'跳转不成功。要变成this.parent.location='../Login.aspx'才行。但我可能在其它文件夹的页面还会用到这个母板页,请问能不能实现我这个需求(跳转到Login.aspx页面)?如果不行,有没有其它的代替方案?谢谢!
...全文
265 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zj25810 2012-04-01
  • 打赏
  • 举报
回复
我是要你把你自己原来写的login.aspx的路径换成~/login.aspx。
不是要你把孟老师代码里面的换了。
  • 打赏
  • 举报
回复
后台:

Response.Redirect("~/Login.aspx");

js:
用完整路径:比如 http://www.xxx.com/Login.aspx
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
也可以这样写
protected void lbtnExit_Click(object sender, EventArgs e)
{
Session.Clear();
//因为有框架,所以用JS跳转
Response.Redirect("~/Login.aspx");
}


Login.aspx里面加一段

<script>
if(window!=to……
[/Quote]

+1
Leo2048 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

我是要你把你自己原来写的login.aspx的路径换成~/login.aspx。
不是要你把孟老师代码里面的换了。
[/Quote]

嗯,试过了,跳不出来。

Response.Write("<script>this.parent.location='~/Login-3-23.aspx'</script>");//因为这用到JS,这样写地址栏后半部分会变成/~/Login.aspx
Leo2048 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
~/不能使用在js中,只能写在后台代码和服务器控件中,看看asp.net的基础语法
~只是asp.net的语法,不是html标准,不要乱用
[/Quote]

嗯~HTML没有这个的。谢谢!给你结帖了~
孟子E章 2012-04-01
  • 打赏
  • 举报
回复
~/不能使用在js中,只能写在后台代码和服务器控件中,看看asp.net的基础语法
~只是asp.net的语法,不是html标准,不要乱用
Leo2048 2012-04-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

后台:
C# code

Response.Redirect("~/Login.aspx");


js:
用完整路径:比如 http://www.xxx.com/Login.aspx
[/Quote]
这个是可以,但我的网站还没配置IIS,用VS端口,隔一段时间变一下,不方便。
Leo2048 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

那段js就是说,如果login.aspx页面嵌套在了别的窗口中了,就跳到最顶层窗口
[/Quote]

可是我的login.aspx页面没有嵌套啊,只是其它页面(例如a.aspx)用到了Iframe_right.master母板页,a.aspx才放到一个框架中。我要从a.aspx退出框架到login.aspx。别见笑,现在还不太理解~
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
那段js就是说,如果login.aspx页面嵌套在了别的窗口中了,就跳到最顶层窗口
Leo2048 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

不可能跳不出来的
[/Quote]

你的方法可以跳出来,我说的是【Steven-徐】,呵呵~
顺便请教一下,那个JS什么意思?为什么是放在Login.aspx页面的。。。
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
不可能跳不出来的
Leo2048 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:
也可以这样写
protected void lbtnExit_Click(object sender, EventArgs e)
{
Session.Clear();
//因为有框架,所以用JS跳转
Response.Redirect("~/Login.aspx");
}


Login.aspx里面加一段

<script>
if(windo……
[/Quote]

这样跳不出来的,呵呵~
Leo2048 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
Response.Write("<script>top.location='" + Page.ResolveUrl("~/Login.aspx") + "'</script>");
转绝对地址即可
[/Quote]

谢谢【孟子E章】!你的两个方法都可以的~
zj25810 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
也可以这样写
protected void lbtnExit_Click(object sender, EventArgs e)
{
Session.Clear();
//因为有框架,所以用JS跳转
Response.Redirect("~/Login.aspx");
}


Login.aspx里面加一段

<script>
if(window!=to……
[/Quote]
用~/login.aspx代替login.aspx这个跳转的路径试试
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
也可以这样写
protected void lbtnExit_Click(object sender, EventArgs e)
{
Session.Clear();
//因为有框架,所以用JS跳转
Response.Redirect("~/Login.aspx");
}


Login.aspx里面加一段

<script>
if(window!=top) top.location.href=window.location.href;
</script>

也可以的
孟子E章 2012-03-31
  • 打赏
  • 举报
回复
Response.Write("<script>top.location='" + Page.ResolveUrl("~/Login.aspx") + "'</script>");
转绝对地址即可
Leo2048 2012-03-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

建议放在同一目录下面,至于其它解决方案...下班了,先回家吃饭。呵呵
[/Quote]
静候指点啊
zj25810 2012-03-31
  • 打赏
  • 举报
回复
建议放在同一目录下面,至于其它解决方案...下班了,先回家吃饭。呵呵

62,268

社区成员

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

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

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

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