一尘不染

在ASP.NET MVC中获取完整的操作URL [重复]

c#

这个问题已经在这里有了答案

如何在ASP.NET MVC中找到操作的绝对URL? (9个答案)

2年前关闭。

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

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

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


阅读 242

收藏
2020-05-19

共1个答案

一尘不染

Url.Action的重载将所需的协议(例如,http,https)作为参数-如果指定此参数,则将获得完全限定的URL。

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

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

HtmlHelper(@Html)也具有ActionLink方法的重载,您可以在剃刀中使用它创建锚元素,但是它还需要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>
2020-05-19