当前位置: 代码迷 >> ASP.NET >> Response.Write("您无权访问!");Response.Redirect("login.aspx")
  详细解决方案

Response.Write("您无权访问!");Response.Redirect("login.aspx")

热度:3360   发布时间:2013-02-25 00:00:00.0
Response.Write("你无权访问!");Response.Redirect("login.aspx");
本帖最后由 hutao1101175783 于 2012-12-02 00:28:50 编辑 Response.Write("<script type='text/javascript'>alert('你无权访问')</script>");Response.Redirect("login.aspx");
这两句在一起,为什么第一句执行不了,。。。。有什么办法让两句都执行。。。
------最佳解决方案--------------------------------------------------------
要了解原因,因为执行Reponse.Redirect的时候,其实内部会做一步Response.Clear的操作,所以你原来的Response.Write中的信息将会被清空,然后再输出一个响应码301,浏览器看到是301就做了重定向了
------其他解决方案--------------------------------------------------------
引用:
引用:页面提示定时跳转
直接拷贝以下一句,替换你原先的那2句即可

C# code?1ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>alert(/'你无权访问!/');setTimeout(function(){location.href='logi……

up+
------其他解决方案--------------------------------------------------------

Response.Write("<script language=javascript>alert('你无权访问!')</script>");
Response.Write("<script language=javascript>window.location.href='login.aspx'</script>");

------其他解决方案--------------------------------------------------------
顺便说一句,如果是你在Page中的话,最好不要用Respnse.Write来操作,因为它会将信息输出到最前面,也就是在<html>标签的前面,而这时不符合标准的html规范的,还是用Page自带的注册脚本的比较好
------其他解决方案--------------------------------------------------------
第二句是服务端语言   
服务端语言执行完才返回给客户端执行js
------其他解决方案--------------------------------------------------------
Response.Redirect("login.aspx")是告诉浏览器直接跳转,所以不会再生成html页面了

------其他解决方案--------------------------------------------------------
该回复于2012-12-08 14:12:25被管理员删除
------其他解决方案--------------------------------------------------------
Response.Write("<script language=javascript>alert('你无权访问!');location.href='login.aspx'</script>");
------其他解决方案--------------------------------------------------------
第一句是执行了,执行了,然后你又跳转第二个页面了,在第一个页面是输出显示的,

你把那句写在第二个页面就可以了,不用后台输出就OK了
------其他解决方案--------------------------------------------------------
引用:
第一句是执行了,执行了,然后你又跳转第二个页面了,在第一个页面是输出显示的,

你把那句写在第二个页面就可以了,不用后台输出就OK了

你这个不对,第一句根本不会执行,因为Response.Redirect里面做了一步Clear的操作,之前所有的write都被清除
------其他解决方案--------------------------------------------------------
引用:
引用:第一句是执行了,执行了,然后你又跳转第二个页面了,在第一个页面是输出显示的,

你把那句写在第二个页面就可以了,不用后台输出就OK了
你这个不对,第一句根本不会执行,因为Response.Redirect里面做了一步Clear的操作,之前所有的write都被清除

 执行的,你自己下代码去,试一下吧,断点就清楚了
------其他解决方案--------------------------------------------------------
引用:
引用:第一句是执行了,执行了,然后你又跳转第二个页面了,在第一个页面是输出显示的,

你把那句写在第二个页面就可以了,不用后台输出就OK了
你这个不对,第一句根本不会执行,因为Response.Redirect里面做了一步Clear的操作,之前所有的write都被清除

或者,你试一下,这一句也是
Response.Write("<script language=javascript>alert('你无权访问!')</script>");
 Response.Write("<script language=javascript>window.location.href='login.aspx'</script>");
这个是浏览用JS跳转,你会看到执行的输入的,弹出窗“没权操作”
------其他解决方案--------------------------------------------------------
引用:
引用:引用:第一句是执行了,执行了,然后你又跳转第二个页面了,在第一个页面是输出显示的,

你把那句写在第二个页面就可以了,不用后台输出就OK了
你这个不对,第一句根本不会执行,因为Response.Redirect里面做了一步Clear的操作,之前所有的write都被清除
或者,你试一下,这一句也……

哥,你这是不同概念啊,你没有用Redirect当然会输出了,如果你加了Redirect就不会输出了,
Redirect和window.location不是同一个概念,do you understand?,不了解的话用fiddler跟踪下
  相关解决方案