在ASP.NET MVC 4网站中,我使用Web API返回JSON格式的资源,包括授权操作的链接(例如,DELETE)。要创建这些链接,我在HttpRequestMessage上使用GetUrlHelper()扩展方法......
_httpRequest.GetUrlHelper().Link( routeName, routeValues );
我担心的是,Link()返回的字符串是一个完全限定的URL(它包括https://example.com/...
),而我认为我需要的只是相对URL(只是/my/resource
)。目前,我有一个服务器问题,我们的生产环境在应该是https时添加http,这不起作用。我可以单独修复它,但它提出了一个问题,我应该提供相对URL吗?如果是这样,是否有更好的方法来获取相对URL而不是修剪UrlHelper.Link()生成的URL的根部分?
编辑: 在咨询了Richardson的& Ruby的功勋RESTful Web Services,我更坚信相对URL在这里是完全合适的。
答案 0 :(得分:0)
Uri上的PathAndQuery
会帮助你吗?
示例:(new Uri(_httpRequest.GetUrlHelper().Link("DefaultApi", new { controller = "Values", p1="abc" }))).PathAndQuery
...这会给你/my/resource?p1=abc