Asp.net mvc 4 如何从ASP.NET返回相对URL';s GetUrlHelper()?

Asp.net mvc 4 如何从ASP.NET返回相对URL';s GetUrlHelper()?,asp.net-mvc-4,restful-url,asp.net-web-api-routing,Asp.net Mvc 4,Restful Url,Asp.net Web Api Routing,在ASP.NETMVC4网站中,我使用WebAPI返回JSON格式的资源,包括授权操作的链接(例如,删除)。要创建这些链接,我在HttpRequestMessage上使用GetUrlHelper()扩展方法 _httpRequest.GetUrlHelper().Link( routeName, routeValues ); 我关心的是,从Link()返回的字符串是一个完全限定的URL(它包括https://example.com/...)当我认为我需要的只是相对的URL(只有/my/reso

在ASP.NETMVC4网站中,我使用WebAPI返回JSON格式的资源,包括授权操作的链接(例如,删除)。要创建这些链接,我在HttpRequestMessage上使用GetUrlHelper()扩展方法

_httpRequest.GetUrlHelper().Link( routeName, routeValues );
我关心的是,从Link()返回的字符串是一个完全限定的URL(它包括
https://example.com/...
)当我认为我需要的只是相对的URL(只有
/my/resource
)。目前,我遇到了一个服务器问题,我们的生产环境在应该是https的情况下添加http,这不起作用。我可以单独解决这个问题,但它提出了一个问题,我应该只提供一个相对URL吗?如果是这样的话,有没有比删除UrlHelper.Link()生成的URL的根部分更好的方法来获取相对URL?

编辑:
在参考了Richardson和Ruby的优点之后,我更加坚定地认为相对URL在这里是完全合适的。

Uri上的
路径和查询
对您有帮助吗


示例:
(新的Uri(\u httpRequest.GetUrlHelper().Link(“DefaultApi”,新的{controller=“Values”,p1=“abc”})).PathAndQuery
…这会让您喜欢
/my/resource?p1=abc

谢谢!这绝对是从绝对中拉出相对的最干净的方法。我真正希望的是一种直接从框架中获取相对URL的方法,而无需查询scheme等的请求对象。但我将获取我能得到的。