在REST ASP.NET MVC中构建URL或链接

时间:2010-03-18 21:31:50

标签: asp.net asp.net-mvc url rest resources

当资源呈现为XML或JSON时,我想在运行时构建URL。当视图是HTML并且只渲染资源的一部分时,我可以很容易地做到这一点,但当我渲染包含指向另一个资源的链接的资源时,我希望根据主机(站点)和资源特定的URI动态生成正确的URL一部分。

<components>
   <component id = "1234" name = "component A" version = "1.0">
       <link rel = "/component" uri="http://localhost:8080/component/1234" />
   </component>
<components>

如何确保'uri'值正确?

1 个答案:

答案 0 :(得分:1)

使用ControllerContext.HttpContext获取有关当前请求的HttpContextBase信息:

var context = ControllerContext.HttpContext;
var host = string.Format("{0}://{1}:{2}/", 
                          context.Request.Url.Scheme, 
                          context.Request.Url.Host, 
                          context.Request.Url.Port);

并将host与使用UrlHelper生成的网址结合使用(参见Url类的Controller属性)。