我有一个这样的URL:
http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye
我想从中得到http://www.example.com/mypage.aspx。
你能告诉我怎么买吗?
我有一个这样的URL:
http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye
我想从中得到http://www.example.com/mypage.aspx。
你能告诉我怎么买吗?
当前回答
简单的例子是使用子字符串:
string your_url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path_you_want = your_url .Substring(0, your_url .IndexOf("?"));
其他回答
Request.RawUrl.Split('?')[0]
仅为url名!!
你可以使用系统。Uri
Uri url = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme,
Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);
或者你可以用substring
string url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));
编辑:修改第一个解决方案,以反映brillyfresh在评论中的建议。
Silverlight的解决方案:
string path = HtmlPage.Document.DocumentUri.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped);
Request.RawUrl.Split(new[] {'?'})[0];
Split()变化
我只是想添加这个变体供参考。url通常是字符串,因此使用Split()方法比Uri.GetLeftPart()更简单。当Uri抛出异常时,Split()也可以处理相对值、空值和空值。此外,url还可能包含散列,例如/report.pdf#page=10(在特定页面打开pdf)。
下面的方法处理所有这些类型的url:
var path = (url ?? "").Split('?', '#')[0];
示例输出:
Null——>为空 空——>空 http://domain/page.html——> http://domain/page.html http://domain/page.html?q=100——> http://domain/page.html http://domain/page.html?q=100#page=2——> http://domain/page.html http://domain/page.html#page=2——> http://domain/page.html Page.html——> Page.html page.html吗?Q =100——> page.html page.html吗?Q =100#page=2——> page.html Page.html #散列——> Page.html