当资源呈现为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'值正确?
答案 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
属性)。