asp中response.redirect的用法

asp中response.redirect的用法

本文目录

  • asp中response.redirect的用法
  • asp怎样用response.redirect进行页面跳转
  • ASP代码中的Response.redirect跳转问题
  • ASP中的response.redirect的一些问题
  • response.redirect 用法
  • Response.Redirect()怎样实现跳转frame
  • Response.Redirect怎么用 请举个简单的例子说明下 辛苦了
  • response.redirect
  • asp怎样用response.Redirect进行页面跳转

asp中response.redirect的用法


ASP中的response.redirect说明和用法:
1、asp中redirect方法是将浏览器重定向到另一个URL,而不是将内容发送给用户。
2、Response.Redirect 语句放在页的顶部和<HTML>标记之前,确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用 Response.Redirect,会出现错误信息。
3、如果要在页面输出信息,并进行跳转,可以使用response.write 和js代码的结合;
比如:
response.write “《script type=’text/javascript’》alert(’内容提交成功!’);location.href=’要跳转的网址url’;《/script》“

asp怎样用response.redirect进行页面跳转


ASP的Redirect 方法:

定义和用法:

Redirect 方法把用户重定向到一个不同的 URL 。

语法

Response.Redirect URL

参数 描述
URL  必需。用户浏览器被重定向的 URL。

实例

《%
Response.Redirect “
%》

ASP代码中的Response.redirect跳转问题


location.href=“%32%2E%61%73%70“之所以没问题是因为浏览器有url解码功能,它可以把编码后的url解码为字符串。而Response.redirect “%32%2E%61%73%70“是发生在服务器上的(换句话说就是跟浏览器是没有关系),而ASP虽然有URLEncode功能,却没有对应的URLDecode(解码)功能。一种解决办法就是利用js:
《%
response.write “《script》location.href=’%32%2E%61%73%70’;《/script》“
%》
还有一种办法就是自己编一个URLDecode函数(网上有很多),把“%32%2E%61%73%70”解码为“2.asp”后再用Response.redirect跳转。
总之,直接用Response.redirect “%32%2E%61%73%70“是不行的,ASP(注意不是JS)会把“%32%2E%61%73%70“直接当作URL使用,而且由于其中含特殊符号%,它还会继续对其进行编码,这就是%变成%25的原因。

ASP中的response.redirect的一些问题


在普通网页中,可以利用超链接引导客户至另一个页面,但是必须要客户单击超链接才行。可是有时希望自动引导(也称重定向)客户至另一个页面,比如:进行网上考试时,当考试时间到时,应自动引导客户端至结束界面。
在ASP中,可使用Redirect方法引导客户至另一个页面。
语法:Response.Redirect 网址变量或字符串
例如:《%
Response.Redirect “
下面是一个具体的例子:
根据客户的不同信息引导至相应的网页
《% Response.Buffer=True ’注意,必须有这句话%》
《html》
《head》
《title》 Response.Redirect用法示例《/title》
《/head》
《body》
《%
Dim user_type
user_type=“teacher“ ’用户类型,一般应该传过来,这里简单赋值了
If user_type=“teacher“ Then
Response.Redirect “teacher.asp“ ’将教师用户引导至教师网页
Else
Response.Redirect “student.asp“ ’将学生用户引导至学生网页
End If
%》
《/body》
《/html》

response.redirect 用法


~/表示从根目录开始,
./表示从当前目录开始。
../表示当前目录的上级目录中。
因此从index.asp跳到admin目录下的a.asp,从根目录开始
Response.Redirect(“~/admin/a.asp“)
再从a跳回 index.asp,只需要到其上级目录
Response.Redirect(“../index.asp“)

Response.Redirect()怎样实现跳转frame


前台页面跳转方式:
1、带frame的跳转
a window.frames.frameName.location.href= url; //frameName代表某个frame,url代表跳转的路径。
b 打开一个新窗口,window.open(url,’frameName’);
2、不带frame的跳转
a window.location.href=url;
b window.history.back(-1);//后退
c window.history.go(-1||-2||...);//后退到前一||二||。。。页面
d window.navigate(url);
e self.location = url;
f top.location = url;
g window.location.reload();//刷新当前页面
h parent.location.reload();//刷新父亲对象页面
i opener.location.reload();//刷新父窗口页面

后台跳转:
1.HyperLink 服务器控件
HTML和ASP中,我们经常用《a href=target.asp》目标《/a》方式实现页面的跳转,在ASP.Net中仍可用此方法,另外还可用HyperLink服务控件代替,如下:
《form id=“form1“ runat=“server“》
《div》
《asp:HyperLink ID=“HyperLink1“ runat=“server“ NavigateUrl=“target.aspx“》目标《/asp:HyperLink》《/div》
《/form》
上述两种方法实现结果一样,但是有一点重要区别,HyperLink服务器控件可以在服务器端编程,目标页可以根据当前的状态进行动态的变化.
注: HyperLink控件本身没有事件,因此只能在其他事件中设置NavigateUrl属性,例如:Page_Load.
2.编程
HyperLink实现从一页面到另一页面的跳转的方式是完全由用户控制跳转时机的,如果在跳转之前添加条件判断,使用编程实现比较方便.
使用代码实现页面跳转的方法有: Response.Redirect, Server.Transfer,Server.Execute
(1)Response.Redirect
从页面A跳转到页面B,内部控件保存的所有数据信息将丢失,因此页面B无法访问页面A提交的数据,跳转后浏览器的URL信息改变,但是可以通过Session,Cookie,Application等对象进行页面间的数据传递.
Response.Redirect重定向操作发生在客户端,总共会涉及到两次与Web服务器的通讯.
(2)Server.Transfer
页面A跳转到页面B,同时页面处理的控制权也进行移交,在跳转过程中Request,Session等保存的信息不变,浏览器的URL仍保存A的URL信息.
Server.Transfer的重定向请求在服务器端进行,客户端不知晓服务器执行了页面转换,因此URL保持不变.
(3)Server.Execute
Server.Execute 方法允许当前页面执行同一Web服务器上的另一页面,当另一页面执行完毕后,控制流程重新返回到原页面发出Server.Execute 调用的位置,被调用页面Page指令的EnableViewStateMac属性需要设置为False;

跳转方式的选择:
HyperLink 服务器控件---------用户决定何时转换,用户决定转换的时机
Response.Redirect------需要链接到另一台服务器的情况,需要链接到非aspx类型的页面的时候,需要将查询字符串作为URL一部分保留的情况
Response.Redirect和Server.Transfer的区别
引自:

Response.Redirect怎么用 请举个简单的例子说明下 辛苦了


你的提问是关于ASP。net的吧!其是关于页面跳转的时的使用。
比如当你引入一个button按钮并在其中有一个button事件
《asp:Button ID=“btnCancel“ runat=“server“ Height=“23px“ Text=“返回“
Width=“55px“ onclick=“btnCancel_Click“ /》
其后台代码为:
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect(“Login.aspx“);
}
当点击此按钮后就会跳转到Login.aspx页面这样就是Response.Redirect();的基本用法了

response.redirect


首先要看你重定向到本页要完成什么操作。
如果只是重定向的话可以用Response.Redirect(Request.Url.ToString());
和脚本方式:response.write(“《script》document.location=’+Request.Url.ToString()+’《/script》“);。
或者直接不写代码,在你需要重定向的本页面的方法处直接return掉就行了。。
比如你在按钮事件里面处理了一些代码,现在要重定向回去,那么只需要加个“return;“就可以了

asp怎样用response.Redirect进行页面跳转


使用:Response.Redirect(url),可以在url中带参数返回到用户登录页面。

Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。 

这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。 

扩展资料:

其它方式:

1、Server.Transfer

Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。 

如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换。 

默认情况下,Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成True,就可以保留第一个页面的表单数据和查询字符串。 

同时,使用Server.Transfer时应注意一点:目标页面将使用原始页面创建的应答流,这导致ASP.NET的机器验证检查(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。

因此,如果要保留原始页面的表单数据和查询字符串集合,必须把目标页面Page指令的EnableViewStateMac属性设置成False。 

2、Server.Execute 

Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。 

这种页面导航方式类似于针对ASPX页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把被调用页面Page指令的EnableViewStateMac属性设置成False。 

默认情况下,被调用页面的输出追加到当前应答流。但是,Server.Execute方法有一个重载的方法,允许通过一个TextWriter对象(或者它的子对象,例如StringWriter对象)获取被调用页面的输出,而不是直接追加到输出流,这样,在原始页面中可以方便地调整被调用页面输出结果的位置。 

参考资料来源:百度百科-asp(动态服务器页面)


推荐阅读