在c#webforms中,使用端口dosen'获取当前路径;不要返回港口

在c#webforms中,使用端口dosen'获取当前路径;不要返回港口,c#,path,webforms,C#,Path,Webforms,我在localhost:5164中工作,并使用此函数获取当前路径 Request.Url.AbsoluteUri.ToString() 结果是正确的,绝对路径宽度端口。例如: http://localhost:5164/path/page1.aspx 但在域中,此函数不返回带有端口的路径(444是客户端浏览器的用法) 结果是: http://sub.domain.com/path/page1.aspx 我使用了其他函数,但结果总是不正确: Request.Url.ToString() Re

我在
localhost:5164
中工作,并使用此函数获取当前路径

Request.Url.AbsoluteUri.ToString()
结果是正确的,绝对路径宽度端口。例如:

http://localhost:5164/path/page1.aspx
但在域中,此函数不返回带有端口的路径(444是客户端浏览器的用法)

结果是:

http://sub.domain.com/path/page1.aspx
我使用了其他函数,但结果总是不正确:

Request.Url.ToString()
Request.Url.OriginalString.ToString()

如果您只需要端口号,可以使用:

Request.Url.Port.ToString();

这将返回实际端口号,您可以验证它是否为444。如果为协议使用默认端口号,如http使用80,则在检查AbsoluteUri值时,它可能不会显示

如果您只需要端口号,可以使用:

Request.Url.Port.ToString();

这将返回实际端口号,您可以验证它是否为444。如果为协议使用默认端口号,如http使用80,则在检查AbsoluteUri值时,它可能不会显示

您可以从以下部分构建URL:

var url = Request.Url.Scheme +         // http(s) 
            Uri.SchemeDelimiter +      // //:
            Request.Url.Host +         // sub.domain.com  
            ":" + Request.Url.Port +   // :444
            Request.Url.PathAndQuery;  // path/page1

AbsoluteUri
如果是默认端口(80),则不会返回该端口。

您可以从其部分构建URL:

var url = Request.Url.Scheme +         // http(s) 
            Uri.SchemeDelimiter +      // //:
            Request.Url.Host +         // sub.domain.com  
            ":" + Request.Url.Port +   // :444
            Request.Url.PathAndQuery;  // path/page1

AbsoluteUri
如果是默认值(80),则不会返回端口。

最后,我找到了在这个特定服务器上返回带有端口的URL的解决方案

    Page.ResolveClientUrl("~" + Request.Url.PathAndQuery.ToString())



最后,我找到了在这个特定服务器上返回带有端口的URL的解决方案

    Page.ResolveClientUrl("~" + Request.Url.PathAndQuery.ToString())



我从结果中使用的任何请求函数都没有端口,但是您的代码可以很好地构造Url。我从结果中使用的任何请求函数都没有端口,但是您的代码可以很好地构造Url