欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Request.UrlReferrer与Request.Url中的属性的使用

程序员文章站 2022-06-02 11:50:12
...

1、由WebForm1.aspx 页面 点击跳转到WebForm2.aspx页面

Request.UrlReferrer(Self)  当前页面:值为null
{http://localhost:3961/WebForm1.aspx}
    AbsolutePath: "/WebForm1.aspx"
    AbsoluteUri: "http://localhost:3961/WebForm1.aspx"
    Authority: "localhost:3961"
    DnsSafeHost: "localhost"
    Fragment: ""
    Host: "localhost"
    HostNameType: Dns
    IsAbsoluteUri: true
    IsDefaultPort: false
    IsFile: false
    IsLoopback: true
    IsUnc: false
    LocalPath: "/WebForm1.aspx"
    OriginalString: "http://localhost:3961/WebForm1.aspx"
    PathAndQuery: "/WebForm1.aspx"
    Port: 3961
    Query: ""
    Scheme: "http"
    Segments: {string[2]}
    UserEscaped: false
    UserInfo: ""


--------------------
Request.Url
{http://localhost:3961/WebForm2.aspx}
    AbsolutePath: "/WebForm2.aspx"
    AbsoluteUri: "http://localhost:3961/WebForm2.aspx"
    Authority: "localhost:3961"
    DnsSafeHost: "localhost"
    Fragment: ""
    Host: "localhost"
    HostNameType: Dns
    IsAbsoluteUri: true
    IsDefaultPort: false
    IsFile: false
    IsLoopback: true
    IsUnc: false
    LocalPath: "/WebForm2.aspx"
    OriginalString: "http://localhost:3961/WebForm2.aspx"
    PathAndQuery: "/WebForm2.aspx"
    Port: 3961
    Query: ""
    Scheme: "http"
    Segments: {string[2]}
    UserEscaped: false
    UserInfo: ""

2、Request.url请求路径的一些属性

Request.url请求路径的一些属性
1,Request.UrlReferrer.AbsolutePath=获取URL的绝对路径
例:"/Manager/Module/OfficialManage/Issuedadocument/Issuedadocument_WorkNew.aspx"

2,Request.UrlReferrer.AbsoluteUri=获取绝对URL
例:"http://localhost:2855/Manager/Module/OfficialManage/Issuedadocument/Issuedadocument_WorkNew.aspx?FormID=1&FlowID=1"

3,Request.UrlReferrer.Authority=获取域名的主机名和端口号
例:"localhost:2855"

4,Request.UrlReferrer.DnsSafeHost(Host)=获得安全的主机名
例:"localhost"

5,Request.UrlReferrer.OriginalString=获取原始的路径
例:"http://localhost:2855/Manager/Module/OfficialManage/Issuedadocument/Issuedadocument_WorkNew.aspx?FormID=1&FlowID=1"

6,Request.UrlReferrer.PathAndQuery=获取主机绝对路径加查询条件
例:"/Manager/Module/OfficialManage/Issuedadocument/Issuedadocument_WorkNew.aspx?FormID=1&FlowID=1"

7,Request.UrlReferrer.Port=端口
例:2855

8,Request.UrlReferrer.Query=查询条件
例:"?FormID=1&FlowID=1"

3、asp.net获取当前页面文件名,参数,域名等方法

    ASP.net后台获取当前页面的文件名  

    System.IO.Path.GetFileName(Request.Path).ToString();  

    获取当前页面文件名,参数,域名等方法  

    假设当前页完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kelli  

    "http://"是协议名  

    "www.test.com"是域名  

    "aaa"是虚拟目录名  

    "bbb.aspx"是页面名(文件名)  

    "id=5&name=kelli"是参数  


    【1】获取 完整url (协议名+域名+虚拟目录名+文件名+参数)  

    string url=Request.Url.ToString();  

    url= http://www.test.com/aaa/bbb.aspx?id=5&name=kelli  

    【2】获取 虚拟目录名+页面名+参数:  

    string url=Request.RawUrl;  

    (string url=Request.Url.PathAndQuery;)  

    url= /aaa/bbb.aspx?id=5&name=kelli  

    【3】获取 虚拟目录名+页面名:  

    string url=HttpContext.Current.Request.Url.AbsolutePath;  

    (string url= HttpContext.Current.Request.Path;)  

    url= /aaa/bbb.aspx  

    【4】获取 域名:  

    string url=HttpContext.Current.Request.Url.Host;  

    url= www.test.com  

    【5】获取 参数:  

    string url= HttpContext.Current.Request.Url.Query;  

    url= ?id=5&name=kelli  

    Request.QueryString["id"]和Request.QueryString["name"]访问各参数  

    Request.UrlReferrer可以获取客户端上次请求的url的有关信息, 这样我们就可以通过这个属性返回到“上一页”。  

    同样地,Request.UrlReferrer.Query可以获取客户端上次请求的url的有关参数部分。  


    Request.ApplicationPath:    /testweb    
       Request.CurrentExecutionFilePath:    /testweb/default.aspx    
       Request.FilePath:    /testweb/default.aspx    
       Request.Path:    /testweb/default.aspx    
       Request.PathInfo:     
       Request.PhysicalApplicationPath:    E:\WWW\testweb\    
       Request.PhysicalPath:    E:\WWW\testweb\default.aspx    
       Request.RawUrl:    /testweb/default.aspx    
       Request.Url.AbsolutePath:    /testweb/default.aspx    
       Request.Url.AbsoluteUri:    http://www.test.com/testweb/default.aspx    
       Request.Url.Host:    www.test.com    
       Request.Url.LocalPath:    /testweb/default.aspx  

4、Request.UrlReferrer使用详解

Request.UrlReferrer可以获取客户端上次请求的url的有关信息。
这样我们就可以通过这个属性返回到“上一页”,
示例如下

1.首先在Page_load中获得并储存该信息

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

页面回发后会改变Request.UrlReferrer,将其指向当前页面,所以需要进行判断:只有在第一次请求页面的时候才储存该信息
因为可能“上一次”的url不存在,所以需要进行判断,只有在Request.UrlReferrer存在的情况下才进行储存

2.然后在返回函数中使用该信息

void Return()
{
if(ViewState["UrlReferrer"]!=null)
Response.Redirect(ViewState["UrlReferrer"].ToString();
} 

在使用Request.UrlReferrer时还要注意:

1.如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2.如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因为
在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3.点击刷新按钮不会改变Request.UrlReferrer

相关标签: ASP.NET学习