当前位置: 首页 > 编程语言 > C#

是否有内置方法从相对路径创建绝对(完全限定)URL,例如给定当前URL的“~-page.aspx”?

时间:2023-04-11 01:29:19 C#

是否有一种内置方法可以从相对路径创建绝对(完全限定)URL,例如给定当前URL的“~/page.aspx”?场景是我有一个应用程序相对url,如“~/path/to/page.aspx?query=string”。我需要以编程方式创建对页面的Web请求,目前正在使用WebRequest.Create。问题是WebRequest.Create需要一个完全限定的URL,包括协议/域/端口等。我可以访问当前的Request.Url对象,但似乎没有一种简单的方法来获取保持协议的基本URL(HTTP与HTTPS)以及任何端口号和应用程序的路径。我的意思是那里的所有信息,所以如果需要的话我可以把所有的部分放在一起,但它看起来很容易出错,而且内置的东西经过了很好的测试可以很好地完成工作。Page.ResolveUrl几乎让我着迷,但它缺少协议和域/端口。试试System.Web.VirtualPathUtility.ToAbsolute()。我已经习惯了它(虽然在VB.NET中,但我确信它有一个C#等效项)并且取得了很大的成功。它甚至可以只转换一个基本虚拟路径(即System.Web.VirtualPathUtility.ToAbsolute("~")将成为您应用程序的基本URL)。编辑Request.Url.GetLeftPart(UriPartial.Authority)怎么样?这应该得到Url的Scheme和Authority部分(我认为这是您引用的协议和域)。下面是MSDN文档:http://msdn.microsoft.com/en-us/library/system.uri.getleftpart.aspx以上是C#学习教程:给定当前URL,是否有内置的createabsolute(完全限定)来自相对路径的url,例如“~/page.aspx”?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: