如何生成不在Web API路由表中的资源的链接?

时间:2013-05-17 13:27:32

标签: c# .net asp.net-mvc-4 asp.net-web-api

我正在尝试通过ApiController创建与某个未知(到WebAPI)资源的虚拟目录相对链接。

示例:

  

的http://一些/路径/的WebAPI /确实/不/知道

WebAPI Url帮助程序似乎与Routing紧密耦合,并且没有像MVC变体那样的Content()方法。我试图避免使用任何不可模拟的HTTP上下文信息来进行此调用(例如HttpContext.Current)。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你可以随时做,

var urlBuilder =     新的System.UriBuilder(Request.Url.AbsoluteUri)         {             Path =“webapi / does / not / know”         };

var uri = urlBuilder.Uri

这样,您无需依赖UrlHelper。根据当前请求推断出基本网址。

答案 1 :(得分:0)

您可以尝试以下两种方法:

  1. HostingEnvironment.MapPath()
  2. 在API控制器中创建System.Web.Mvc.UrlHelper