小编典典

在 ASP.NET MVC 中获取操作的完整 URL

all

是否有获取操作的完整 URL 的内置方法?

我正在寻找类似的东西GetFullUrl("Action", "Controller")会返回类似的东西http://www.fred.com/Controller/Action

我正在寻找这个的原因是避免在生成的自动电子邮件中对 URL 进行硬编码,以便始终可以相对于站点的当前位置生成 URL。


阅读 97

收藏
2022-03-22

共1个答案

小编典典

Url.Action 有一个重载,它将您想要的协议(例如 http、https)作为参数 - 如果您指定它,您将获得一个完全限定的 URL。

这是一个在 action 方法中使用当前请求协议的示例:

var fullUrl = this.Url.Action("Edit", "Posts", new { id = 5 }, this.Request.Url.Scheme);

HtmlHelper (@Html) 还具有 ActionLink 方法的重载,您可以在 razor 中使用它来创建锚元素,但它还需要 hostName 和
fragment 参数。所以我会选择再次使用@Url.Action:

<span>
  Copy
  <a href='@Url.Action("About", "Home", null, Request.Url.Scheme)'>this link</a> 
  and post it anywhere on the internet!
</span>
2022-03-22