使用路由获取绝对url

发布于 2024-08-22 16:30:21 字数 90 浏览 7 评论 0原文

这应该很简单。我想获得给定控制器、操作和其他路由值的绝对 Uri。换句话说,我想做 Html.ActionLink 所做的事情,但没有锚点,我想在我的控制器中完成它。

This should be simple. I want to get an absolute Uri given the controller, action and other routevalues. In other words I want to do what Html.ActionLink does but without the anchor and I want to do it in my controller.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

本宫微胖 2024-08-29 16:30:21

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

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

IE:


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

When I tried to use UrlHelper(string action, string controller) I was still getting a relative path.

So to generate the full url I used a Uri and passed the Uri of the Request as the baseUri.

ie:


var urlHelper = new UrlHelper(Request.RequestContext);
var routeUri = new Uri(Request.Url, urlHelper.Action("action", "controller"));
return routeUri.AbsoluteUri;
∞琼窗梦回ˉ 2024-08-29 16:30:21

您可以使用 UrlHelper.Action( )。您的控制器已将此作为属性 Url。

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

You can generate link URLs with UrlHelper.Action(). Your controllers already have this as property Url.

Url.Action("Logout", "AccountController")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文