如何获取当前网址

8

可能是重复问题:
如何在C#中获取当前页面的URL

如果我在一个页面上,比如说 http://myweb/folder/obtain.aspx?thevalue=3,我该如何在C#中确定这个URL是否包含 obtain.aspx?thevalue?我只需要检查用户是否落在了这个特定的页面。

PS:我想我实际上不需要检查 ?thevalue,只需要检查 obtain.aspx


@RichardD 那里的答案并没有解释如何获取实际着陆页面/文件的名称,它们只展示了如何获取Url。基于标题它们是相同的,但问题内容使它们不同。 - Nate
如何在Python中实现这个? - OmK
6个回答

12

试一下这个:

//gets the current url
string currentUrl = Request.Url.AbsoluteUri;

//check the url to see if it contains your value
if (currentUrl.ToLower().Contains("obtain.aspx?thevalue"))
    //do something

1
有时链接可能是大写、标题或小写,因此将其视为+1。 - Rippo
如果URL中有'#'怎么办......即 http://myweb/folder/obtain.aspx#commentfocus - Pranav Bilurkar

2

这将会给你准确的文件名(obtain.aspx) Request.Url.Segments[1]


在我的情况下,最后一段是3。我该如何修改上面的代码以获取URL的末尾部分(即/之后的最后一部分)? - Naomi

1

Request.Url 应该包含你所需的一切。在你的情况下,你可以使用类似于以下的东西

if( Request.Url.PathAndQuery.IndexOf("obtain.aspx") >= 0 )...

1

我建议使用Request.Url。为了获取确切的文件名,你也可以尝试使用System.IO.Path

var aspxFile = System.IO.Path.GetFileName(Request.Url.LocalPath);
var landed = aspxFile.Equals("obtain.aspx", StringComparison.InvariantCultureIgnoreCase);
if(landed) { // your code }

0

Request.Url 会返回用户请求的确切 Uri。

如果您想特别检查 thevalue,那么最好在 Request.QueryString 中查找。


0

它很丑,但你可以尝试一下

if (HttpContext.Current.HttpRequest.Url.AbsolutePath.Contains("/obtain.aspx"))
 // then do something

1
Contains会对"2obtain.aspx"返回true...应该使用Equals()和System.IO.Path.GetFileName(Request.Url.LocalPath); - Kim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接