使用路由获取绝对URL

时间:2010-02-20 16:30:31

标签: asp.net-mvc asp.net-mvc-routing

这应该很简单。我希望得到一个绝对的Uri给出控制器,动作和其他路线值。换句话说,我想做Html.ActionLink所做的事情,但没有锚点,我想在我的控制器中做。

2 个答案:

答案 0 :(得分:4)

当我尝试使用UrlHelper(字符串操作,字符串控制器)时,我仍然得到一个相对路径。

因此,为了生成完整的URL,我使用了Uri并将请求的Uri作为baseUri传递。

即:


var urlHelper = new UrlHelper(Request.RequestContext);
var routeUri = new Uri(Request.Url, urlHelper.Action("action", "controller"));
return routeUri.AbsoluteUri;

答案 1 :(得分:0)

您可以使用UrlHelper.Action()生成链接网址。您的控制器已将此作为属性Url。

Url.Action("Logout", "AccountController")