带有=号的网址并从中获取价值

时间:2018-07-03 10:57:24

标签: c# asp.net url

我正在尝试从URL获取multiple的值。但我不知道Url如何获得多个=符号。这就是为什么我无法使用querystring获得它的原因。因此,我正在访问完整的URL并尝试从中获取值,但是我无法从值中删除%符号。 这是我的代码。

string fullUrl = Request.Url.AbsoluteUri.ToString();
string str = fullUrl.Substring(fullUrl.LastIndexOf("Amount"));

此处fullUrl的值如下:-

  

fullUrl =   “ http://localhost:10372/Customer/Success.aspx?URL=Amount=10&Name=Shami%20%20Sheikh&EmailOfPayer=ansitshami911@gmail.com&bussness=61339393592016_Preevet&CompanyName=Shami%20Sheikh&PaymentDate=07/03/2018%2015:50:48&SecuritiesandComplianceFee=0.47&BackmyUri=http://localhost:11181/Payment.aspx&phone=1234567891&Cardnumber=973638353835&Country=198&St=354&Other=&city=Delhi&Address=Delhi&ZipCode=201301&EmailOfReceiver=ansitshami911@gmail.com&Planrateforaccount=40&Planrateforcard=60&Planrateforcheck=2018&PlanYear=2018

str变量的值如下

  

str =   金额= 10&名称=Shami%20%20Sheikh&EmailOfPayer=ansitshami911@gmail.com&bussness=61339393592016_Preevet&CompanyName=Shami%20Sheikh&PaymentDate=07/03/2018%2015:50:48&SecuritiesandComplianceFee = 0.47&BackmyUri = http://localhost:11181/Payment.aspx&phone=1234567891&Cardnumber=973638353835&Country=198&St=354&Other=&city=Delhi&Address=Delhi&ZipCode=201301&EmailOfReceiver=ansitshami911@gmail.com&Planrateforaccount=40&Planrateforcard=60&Planrateforcheck=2018&PlanYear=2018

这是我的代码,用于从URL获取值:-

 string s = str;
 String[] arr = s.Split('&');
   var Namearr = from word in arr
                              where word.StartsWith("Name")
                              select word;
                foreach (var item1 in Namearr)
                {
                    string str1 = item1.ToString();
                    string[] strArr = str1.Split('=');
                    string Name = strArr[1];
                }
  

但是变量中分配的值为Name =“ Shami%20%20Sheikh”

现在,当我尝试获取Name的值时,它将返回带有%符号的值。

如何从URl中获取实际值?

4 个答案:

答案 0 :(得分:4)

您可以获得使用以下方法处理过的查询字符串值:

Request.QueryString["Name"]

答案 1 :(得分:0)

我认为您正在寻找System.Uri.UnescapeDataString(Name)

https://msdn.microsoft.com/en-us/library/system.uri.unescapedatastring(v=vs.110).aspx

答案 2 :(得分:0)

通过使用以下代码,您将从所有可以找到的queryString参数,可以从其中找到元素queryString参数及其值。

foreach (string key in Request.QueryString.AllKeys) {
    Response.Write("Key: " + key + " Value: " + Request.QueryString[key]);
}

答案 3 :(得分:-2)

使用server.UrlDecode可以正常工作。

  

string fullUrl = Server.UrlDecode(Request.Url.AbsoluteUri.ToString());