c#在webbrowser.url上使用.ToString()方法自动转换%26&符号?

时间:2016-02-17 22:21:38

标签: c# url webbrowser-control urldecode ampersand

我试图做这样的事情,所以我可以从c#webbrowser中获取URL中的信息,之后我使用& amp;作为部分的端点:

string theURL = System.Uri.UnescapeDataString(webBrowser1.Url.ToString().Replace("%26","and")).Replace('+',' ');

我的问题是,当我在webBrowser1.Url上调用.ToString()时,它会自动将%26转换为&有效地毁了我的网址。我需要保留%26,直到我自己处理它并用其他东西替换它。

-

我尝试了另类这样的方法,但是param1由于某种原因总是空白,我永远无法从中得到任何东西:

string queryString = webBrowser1.Url.Query;
var q = System.Web.HttpUtility.ParseQueryString(queryString);
var param1 = q["paramname"];

这也给了我空白:

foreach (var element in q) 
{
    MessageBox.Show(element.ToString());
}

1 个答案:

答案 0 :(得分:3)

试试webBrowser1.Url.OriginalString。这应保留原始网址。

重写ToString的{​​{1}}方法并返回规范表示。查看仅显示此in the documentation的示例。