0

在 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 吗?如果是这样,有没有比剪掉 UrlHelper.Link() 生成的 URL 的根部分更好的方法来获取相对 URL?

编辑:在咨询了 Richardson 和 Ruby 的优秀RESTful Web Services之后,我更加坚信相对 URL 在这里是完全合适的。

4

1 回答 1

0

PathAndQueryon Uri 对您有帮助吗?

示例:(new Uri(_httpRequest.GetUrlHelper().Link("DefaultApi", new { controller = "Values", p1="abc" }))).PathAndQuery......这会给你喜欢/my/resource?p1=abc

于 2013-06-07T02:15:47.587 回答