好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ASP.NET中C#使用Request获取来源网址URL参数

Request对象功能是从客户端得到数据,常用的三种取得数据的方法是:Request.Form、Request.QueryString,Request。其第三种是前两种的一个缩写,可以取代前两种情况。而前两种主要对应的Form提交时的两种不同的提交方法:分别是Post方法和Get方法。

        Request 对象的属性和方法比较多,常用的几个为:UserAgent 传回客户端浏览器的版本信息,UserHostAddress 传回远方客户端机器的主机IP 地址,UserHostName 传回远方客户端机器的DNS 名称,PhysicalApplicationPath 传回目前请求网页在Server 端的真实路径。


从浏览器获取数据 

        利用Request方法,可以读取其他页面提交过来的数据。提交的数据有两种形式:一种是通过Form表单提交过来,另一种是通过超级链接后面的参数提交过来,两种方式都可以利用Request对象读取。



<%@ Page Language="C#"%> 

<%

    string strUserName = Request["Name"];

    string strUserLove = Request["Love"];

%>

姓名:<%=strUserName%>

爱好:<%=strUserLove%>

<form action="" method="post">

<P>姓名:<input type="TEXT" size="20" name="Name"></P>

<P>兴趣:<input type="TEXT" size="20" name="Love"></P>

<P><input type="submit" value="提 交"></P>

</form>


得到客户端的信息 

        利用Request对象内置的属性,可以得到一些客户端的信息,比如客户端浏览器版本和客户端地址等等


<%@ Page Language="C#"%>

客户端浏览器:<%=Request.UserAgent %>

客户端IP地址:<%=Request.UserHostAddress %>

当前文件服务端物理路径:<%=Request.PhysicalApplicationPath %>


Request 对象的属性


  UserLanguages 客户端主机所使用的语言


  UserHostName 客户端主机的DNS名称


  userHostArrress 客户端主机的IP地址


  UserAgent 客户端浏览器版本


  Url 当前要求的URL


  TotalBytes 当前输入的容量大小


  ServerVariables 网页的Server变量


  RequestType 客户端网页的传送方式(Get/Post)


  RawUrl 当前页面的U『RL


  QueryString 浏览器地址栏后的参数


  PhysicalPath 当前网页在服务器端的实际路径


  PhysicalApplicationPath 当前在服务器端执行的程序的实际路径


  Pathq 当前网页的相对地址


  Params 返回QueryString、Form、Cookies、ServerVariables的全部集合       


   IsSecureConnection 目前联机的安全性


  IsAuthenticated 目前联机是否有效


  HttpMethod 目前客户端网页的传送方式(Get/Post)


  Headers 网页的标题集合


  Form 窗体变量


  Files 客户端上传的文件


  FilePath 当前执行网页的相对地址


  Cookies HttpCookieCollection对象集合


  ContentType 当前需求的MIME内容类型


  ContentEncoding 客户端浏览器的字符设置 -


  ConnectionlD 客户端所提出的网页浏览请求的联机的ID


  ClientCertificate 客户端安全认证信息


  Browser 客户端浏览器的信息


  AnnlicationPath 当前运行程序的服务器端虚拟目录


--------------------------http://zxyklmyt.blog.163测试数据/blog/static/88881207200811143816411/-------------------------- 


ASP.NET的UrlReferrer方法虽然可以获取来源网址,但最近在进行移动开发的时候,虽然UrlReferrer获取的包含中文参数的地址是正确的,但设置为Link的NavigateUrl属性时,点击链接返回后,来源网址获取的是乱码。所以使用该替代方法getParam:


   private string getParam(string strHref, string strName)

    {

        int intPos = strHref.IndexOf("?");

        if (intPos < 1)

            return "";


        string strRight = strHref.Substring(intPos + 1);


        string[] arrPram = Utils.SplitString(strRight, "&");//SplitString方法:将某字符串按特定字符或字符串分割为字符串数组

        for (int i = 0; i < arrPram.Length; i++)

        {

            string[] arrPramName = Utils.SplitString(arrPram[i], "=");

            if (arrPramName[0].ToLower() == strName.ToLower()) return arrPramName[1];

        }

        return "";

    }

如何使用:

protected void Page_Load(object sender, EventArgs e)

    {

        string url = Request.UrlReferrer.ToString();

        url = "SearchResult.aspx?sArea=" + Server.UrlEncode(getParam(url, "sArea")) + "&sKeyword=" + Server.UrlEncode(getParam(url, "sKeyword"));

        linkBack.NavigateUrl = url;

    }

查看更多关于ASP.NET中C#使用Request获取来源网址URL参数的详细内容...

  阅读:63313次